Dubbo架构
- 服务发布
- spring容器通过DubboBeanDefinitionParser类的对象来解析xml文件中的标签,生成ServiceConfig等配置对象;
- ServiceConfig的export()等发布服务的方法被调用;
3、通过spi机制确定Protocol接口的实现对象为DubboProtocol的对象,调用它的openServer()等方法;
4、通过spi机制确定Transporter接口的实现对象为NettyTransporter,调用它的bind()方法;
5、调用NettyServer类,启动netty服务,绑定端口。
- zookeeper存储
1、dubbo节点
2、接口节点
3、Providers节点
dubbo://172.16.20.34:21901/com.jrj.tougu.smartstock.client.api.MarketHermographInterface?anyhost=true&application=smartstock&dubbo=2.5.3&interface=com.jrj.tougu.smartstock.client.api.MarketHermographInterface&methods=querySuggestPosition,home&pid=23377&revision=8.0.0-SNAPSHOT&side=provider&timeout=3000×tamp=1544152233092
4、Consumer节点
consumer://172.16.20.26/com.jrj.tougu.smartstock.client.api.MarketHermographInterface?application=tougu-wireless-face&category=consumers&check=false&dubbo=2.5.3&interface=com.jrj.tougu.smartstock.client.api.MarketHermographInterface&methods=home,querySuggestPosition&pid=27462&revision=8.0.0-SNAPSHOT&side=consumer&timeout=10000×tamp=1544080448787
- 消费者调用
1、接口调用堆栈
2、动态代理类
3、Netty传输
- 服务监听
DecodeHandler->HeaderExchangeHandler->DubboProtocol.requestHandler->HeaderExchangeHandler.received->channel.send