dubbo 的组件和Netty的关系
dubbo的启动流程
1、dubbo provider的启动
Main-》 ServerConfig -》 DubboProtocol#openServer :然后开始组装handler,最后调用NettyServer的doOpen()
dubbo的执行流程
1、dubbo的执行和netty的执行是怎么关联上的?
关联点在NettyServer, 里面的handler是netty的handler,但是同时传入了dubbo的ChannlHandler。 netty的各种事件处理操作,都会转发给dubbo的ChannlHandler进行处理;(dubbo 的组件和Netty的关系 的图也说明了这种关系)
dubbo的一些设计参考
1、装饰器模式
dubbo handler的组装
灵活组合各种handler ,相比netty的handler而言,dubbo的handler是必须要执行的,netty的handler是可选的,执行顺序 是不固定的;
2、扩展点设计
依赖倒转的原则,保证了各个节点的灵活性;
其实扩展点,就是策略模式的使用,只不过这里的策略的实现可能是业务定制化的,所以做成了配置化 + 反射的方式去加载各种类;(定好接口标准,业务实现)
3、url的统一设计
统一语言
4、适配器模式
(1)对于netty的适配,把dubbo和netty进行了解耦;
在dubbo的netty包,使用了dubbo的ChannelHandler进行适配;(找到适配点,定义映射关系,定义映射接口,适配)