一、背景
早期内部使用的是当当网fork的Dubbox,由于现在Dubbo又开始重新维护,而且阿里将其捐献给了Apache,并成为了Apache的顶级项目。因此dubbo版本升级到2.7.1势在必行。
二、版本升级
从2.8.4升级到2.7.1
具体可以参考:
Dubbo Spring Boot (v2.7.1) : https://github.com/apache/incubator-dubbo-spring-boot-project
Dubbo (v2.7.1) : https://github.com/apache/incubator-dubbo
三、遇到的问题
问题
解决思路
dubbo-admin启动成功,但是元数据和服务测试功能无法正常使用
- zk服务端的版本问题。测试后发现当前只支持zk3.4.13版本,3.4.14或者3.5.5都不支持;
- admin的global配置问题,不能填写127.0.0.1,必须填写ip地址;
- zk节点可以通过zooInspector手动删除;
dubbo服务启动多次后产生多个服务
- 2.7.1版本里zk的节点是默认静态节点,导致服务shutdown后依旧存在;此问题在2.7.2以后已经解决;
- 解决思路:优雅的关闭程序(1.idea中点击退出按钮,2.服务器上不要强杀进程,正常stop或者kill 进程)
dubbo-admin启动后服务端显示127.0.0.1
- 主要是主机名默认是127.0.0.1
- 解决思路(1.修改主机名 hostnamectl set-hostname xxx.xxx.xxx.xxx 2.在配置文件里指定dubbo的host(不建议))
序列化报错
建议使用kryo序列化,其序列化效率明显优于Java序列化,若使用Java序列化,则bean需要实现Serializable接口;kryo并不需要,直接引入jar包maven引用即可