1、特别说明
此次升级使用dubbo版本为2.7.15,并且此次升级为平滑升级,新/老包之间可互相调用。
2、详细升级步骤
2.1、pom.xml文件修改
去除原groupId为com.alibaba的相关dubbox依赖,添加以下依赖
org.apache.dubbo
dubbo
2.7.15
org.apache.dubbo
dubbo-dependencies-zookeeper
2.7.15
pom
2.2、dubbo.xml配置文件修改,替换原来dubbo相关标签,改成如下标签(标红位置)
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns:dubbo=“http://dubbo.apache.org/schema/dubbo”
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd ">
2.3、dubbo.xml配置文件修改,dubbo:application标签中添加以下以下内容(标红位置)
2.4、dubbo.xml配置文件修改,dubbo:registry标签下面添加以下内容(标红位置)
注意:这里写的是配置项的key值,注意自己的key是否相同,不要写错了
其实就是把 dubbo:registry 这一行复制一下,把 dubbo:registry 改成dubbo:metadata-report即可
2.5、代码修改
原代码
替换后代码
com.alibaba.dubbo.rpc.protocol.rest.support.ContentType
org.apache.dubbo.rpc.protocol.rest.support.ContentType
com.alibaba.dubbo.container.Main
org.apache.dubbo.container.Main
@com.alibaba.dubbo.config.annotation.Service
@org.apache.dubbo.config.annotation.DubboService
3、可能的报错以及解决方案
3.1、invalid constant type: 18
3.1.2、解决方案:
排除项目中javassist版本为3.12.1.GA版本的包,使用dubbo依赖中自带的3.23.1-GA版本的包即可。3.12.1.GA版本的groupId为javassist,而3.23.1-GA版本的groupId为org.javassist。
3.2、Address already in use
3.2.2、解决方案:
3.3、dubbo-admin中报错:无元数据信息,请升级至Dubbo2.7及以上版本,或者查看application.properties中关于config center的配置
3.3.1、报错如下:
3.3.2、解决方案:
1、按照2.4中步骤进行修改即可
2、参考文档:https://blog.csdn.net/qq_42393720/article/details/122275884
3.4、 多网卡、虚拟网卡等导致注册到ZK的ip地址错误
3.4.1、报错如下
实际ip地址为:10.0.X.X,但是dubbo获取到的ip地址为虚拟网卡的:192.168.122.1,导致消费者无法获取到正确的提供者,从而导致错误
3.4.2、解决方案
启动脚本增加启动参数即可
-DDUBBO_IP_TO_BIND=服务器实际ip
例如:java -jar-DDUBBO_IP_TO_BIND=1.2.3.4 demo.jar
源码位置:org.apache.dubbo.config.ServiceConfig#findConfigedHosts
docker参考资料:https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-docker
4、注意事项
1、其他jar包冲突自行解决,附录为部分jar版本
jar****包
当前使用版本
当前最新版本
备注
spring全家桶
5.3.15
5.3.15
mybatis
3.5.6
3.5.9
mybatis-spring
2.0.4
2.0.7
dubbo
2.7.15
3.0.5
dubbo-dependencies-zookeeper
2.7.15
3.0.5
tomcat-embed-logging-juli
8.5.2
9.0.0.M6
tomcat-embed-core
8.5.63
10.1.0-M10
curator-framework
4.2.0
5.2.0
curator-recipes
4.2.0
5.2.0
jackson-databind
2.13.1
2.13.1
jackson-annotations
2.13.1
2.13.1
jackson-core
2.13.1
2.13.1
resteasy-jaxrs
3.0.26.Final
3.15.3.Final
resteasy-client
3.0.26.Final
6.0.0.Final
resteasy-netty
3.0.26.Final
3.15.3.Final
resteasy-jdk-http
3.0.26.Final
6.0.0.Final
resteasy-jackson2-provider
3.0.26.Final
6.0.0.Final
resteasy-jaxb-provider
3.0.26.Final
6.0.0.Final
jdk
1.8
1.8+即可