摘要:昨天上线个新版本的dubbo服务到预发布环境,今天来验证功能,发现,其中一个接口调用,1次正常,下一次就不正常,再刷新又正常了,这到底是什么问题呢,我们来分析下:

一:问题排查:

1.首先查看是不是部署了多台服务提供者,如果是停掉其中一台,这么做以后,发现还是有问题

2.再次排查,通过dubbo admin管理端,查询了注册到zookepper里面的服务有两个版本,但是服务提供者只要1台呀,那另一台是哪里来的呢,后来运维同事说,昨天他手动启动了一台,所以出现两个相关名称的dubbo服务,这也就是解释了,为什么服务调用1次正常,下一次就不正常了,这里是请求了不同的dubbo服务产生的结果。

二:解决办法:

通过dubbo admin管理端删除掉手动启动的那台服务,这也服务调用就正常了。

三:问题总结:

会出现上面的问题,主要还是因为我们的dubbo服务没有版本更新,目前的模式是每次更新新版本,但是dubbo版本没有升级,所以会出现这种不兼容的情况,其实dubbo本身提供的版本维护机制,我们可以每次上线前更新下dubbo版本,也就不会产生上面的问题了,看来还的好好研究下dubbo的版本维护问题,以上就是本次问题产生的原因及解决思路,记录一下,如果你也有类似的问题,可以提供个思路,如果能帮到你,那我很荣幸。

标题