3.0版本的dubbo版本号和RPC通讯版本号变更的细节问题

最近学dubbo3 filter的时候,在启动服务的时候发现,通过filter打印的invoke的URL后台日志,dubbo后面显示的是2.0.2

dubbo://192.168.22.189:20999/com.dubbo3.service.DubboService?accesslog=true&anyhost=true&application=provider&bind.ip=192.168.22.189&bind.port=20999&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.dubbo3.service.DubboService&metadata-type=remote&methods=sayHello&pid=8370&release=3.0.1&revision=1.0.0&service.filter=default,myProviderFilter&side=provider&timestamp=1661922809378&version=1.0.0

明明加载的是3.0.1版本的dubbo,为何这里显示的是2.0.2呢。(通常这个“=”号后面显示的就是dubbo版本号,如在2.6.2版本的dubbo,这里显示的就是dubbo=2.6.2) 翻看dubbo源码,Version.java,对比两个版本可以发现如下变更

在2.6.2版本之后,新增了一个常量DEFAULT_DUBBO_PROTOCOL_VERSION,继续看3.0.1版本的代码可以看到

dubbo版本2.0.2.png

DubboCodec里DUBBO_VERSION取得是dubbo rpc协议版本号

这说明在2.6.2之前,Export的服务时,dubbo=xxx,等于号后面的表示的是dubbo版本号。 而在2.6.2之后,这个xxx(上面的2.0.2)的含义表示的是Dubbo 的RPC 通讯协议的版本

参考文章1:https://blog.csdn.net/a718515028/article/details/87883129

参考文章2:https://blog.csdn.net/zhibo_lv/article/details/104796122


已有 0 条评论

    感谢参与互动!