最近学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×tamp=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版本的代码可以看到
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
注意:本文归作者所有,未经作者允许,不得转载