dubbo是如何使用netty的?(1)

时间:2024-04-06 07:10:20

最近在复习netty,于是重新看了下dubbo是怎么使用netty的,分为server和client两部分,这篇先讲server端。

首先需要发布一个服务,看Protocol接口:

dubbo是如何使用netty的?(1)

找到他的默认实现DubboProtocol中的export方法:

dubbo是如何使用netty的?(1)

dubbo是如何使用netty的?(1)

dubbo是如何使用netty的?(1)

然后看到这里:

dubbo是如何使用netty的?(1)

进bind方法看一下:

dubbo是如何使用netty的?(1)

dubbo是如何使用netty的?(1)

这里又出现一个新的接口Exchanger:

dubbo是如何使用netty的?(1)

到他的默认实现HeaderExchanger里看一下:

dubbo是如何使用netty的?(1)

dubbo是如何使用netty的?(1)

dubbo是如何使用netty的?(1)

这里又又出现一个新的接口Transporter,来看到Transporter接口:

dubbo是如何使用netty的?(1)

主要实现有图上几种,进入他的默认netty实现看一看:

dubbo是如何使用netty的?(1)

dubbo是如何使用netty的?(1)

这里构造函数使用了父类AbstractServer的:

dubbo是如何使用netty的?(1)

可以看到这里主要是在准备各种参数(从URL里得到),然后又调用了子类的doOpen方法:

dubbo是如何使用netty的?(1)

这里我们可以看到netty中熟悉的bootstrap、bossGroup、workerGroup了。到此就完成了Netty server端的启动。中间省略了一部分细节,但是不影响这个主流程所以略去了,待有时间再补吧。。。下篇文章讲下dubbo client端中的netty。