摘要:
类图 Filter链 在ProtocolFilterWrapper对象中完成Filter完成组建。 实现代码 阅读全文
摘要:
设计原则 1. 多用组合,少用继承 2. 针对接口编程,不针对实现编程 3. 依赖抽象,不要依赖具体实现类。 设计模式 1. 策略设计模式:Dubbo扩展Spring的xml标签解析 2. 装饰者设计模式:Invoker链组建 3. 模板设计模式:一般的机制都有,抽象父类定义使用流程,子类根据业务需 阅读全文
摘要:
背景 调用对象!在调用过程可以使用Filter接口方法。Inovoker调用过程采用了装饰者设计模式。Filter最后一个ExcpetionFilter对象,这个对象之后就调用服务方法。服务对象是配置在Spring xml文件中,要通过BeanFactory对象找到目标对象。再找相应的方法,整个服务 阅读全文
摘要:
roxyFactory将对外开放的服务进行封装。这里使用到代理的方式。ProxyFactory接口有两个不同的实现类:JavassistProxyFactory和JdkProxyFactory。JdkProxyFactory是基于JDK的动态代理机制实现的。只能针对方法级别的代理。Javassist 阅读全文
摘要:
Server接口是开启一个socket服务。服务实现有netty,mina,grizzly的。 抽象时序图 获取NettyServer时序图 Transporter类图 Server 类图 阅读全文
摘要:
实现此接口获取Server服务。 实现的类只有HeaderExchanger类。 方法 时序图 阅读全文
摘要:
定义了通过URL对象作为参数获取Executor对象的getExecutor方法。所有实现ThreadPool接口的类都是基于ThreadPoolExecuotr对象来实现的。 类图 阅读全文
摘要:
背景 一个请求经过序列化二进制数据转化成对象之后。请求进入netty框架,netty框架经过业务处理把主动权转交给NettyHandler对象。NettyHandler进入ChannelHandler机制的入口点。 类图 阅读全文
摘要:
背景 顺序化逻缉处理! 类图 获取Serialization对象时序图 序列化 阅读全文
摘要:
Dubbo协议解码时序图 阅读全文
摘要:
背景 定义解码和编码方法。 Code2是Code的升级版本。 类图 问题 DubboCodec的父类已经实现了Code2接口并且DubboCodec没有实现Code2接口,为什么要implement Code2接口? 实验 场景:定义一个接口I,类A承继并实现接口方法,类B承继类A并实现自己的接口方 阅读全文
摘要:
背景 Dubbo所有的模块加载是基于SPI机制的。在接口名的上一行加个@SPI注解表明要此模块要通过ExtensionLoader加载。基于SPI机制的扩展性比较好,在不修改原有代码,可以实现新模块的扩展。 获取AdaptiveExtension时序图 getAdaptiveExtension方法 阅读全文
摘要:
Protocol接口是Dubbo框架的核心组件。Dubbo框架启动protocol接口实现类,由spring的xml文件配置决定。RegistryProtocol协议是Protocol协议的核心,它负责注册和启动相应的服务议协。 Protocol类图 DubboProtocol时序图 阅读全文
摘要:
通过ExtensionFactory的getExtension方法获取目标对象。ExtensionFactory实现有两个,一个基于SPI的,一个Spring的ApplicationContext的。 类图 SpiExtensionFactory和SpringEXtensionFactory注入到A 阅读全文
摘要:
ServiceBean时序图 阅读全文
摘要:
spring与dubbo事件 类图 阅读全文