dubbo服务暴露

ServiceBean继承了ApplicationListener类,实现了onApplicationEvent方法
该方法会进行校验并执行this.export();

该方法会取提供者的export,如果有就直接取得,没有则执行doExport()
进行一系列校验后调用doExportUrls
此时会加载注册配置信息获取url列表

然后循环protocols进行下一步doExportUrlsFor1Protocol
在该方法中会根据是远程方法还是本地方法和url的个数进行不同的调度。
Exporter<?> exporter = protocol.export(invoker);最后会执行这个方法。
进入DubboProtocol类,调用export方法

调用openServer进行createServer

该方法在Bind方法会对这个url进行netty监听,最后会进入NettyTransporter类的bind
会新建一个nettyServer,并注册NettyCodecAdapter解析器用于解码,该解码器解决了dubbo的半包和粘包问题,使用buffer数组的概念。netty的ServerBootStrap会监听该信息。
至此,用于监听的Export已经生成,可以监听客户端发过来的消息解码之后通过netty的requestHandler进行回调处理。
注册的requestHandler在DubboProtocol类中自定义:

注册到zk节点是在RegistryProtocol的export中调用了ZookeeperRegistry的doRegister

http://note.youdao.com/noteshare?id=f4941136fe10bf2337c9ea15b7cbfefe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值