多版本
当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用,用法如下:
<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" version="1.0.0" />
利用dubbo该特性,我们能够实现一些功能的灰度发布,实现步骤如下:
- 接口旧的实现定义version="1.0.0",接口新的实现version="2.0.0"
- Consumer端定义version="*"
这样定义Provider和Consumer后,新旧接口实现各承担50%的流量;
利用dubbo该特性,还能完成不兼容版本迁移:
- 在低压力时间段,先升级一半Provider为新版本;
- 再将所有消费者升级为新版本;
- 然后将剩下的一半提供者升级为新版本。
来源:https://www.cnblogs.com/jingqi123/p/12446676.html