评论

收藏

[Java] Dubbo的API包什么时候需要升级版本号?

编程语言 编程语言 发布于:2021-09-11 23:29 | 阅读数:426 | 评论:0

尽管现在SpringCloud现在盛行市场,但是使用的dubbo的公司也大量存在,之前我使用SpringCloud的时候也借鉴了dubbo的api的架构,直接@FeignClient("classServer")注入接口的实例,完成微服务之间的调用。
DSC0000.jpg


  • 1.接口里面方法的参数发生变化:
  • 2.接口里面增加新的方法:
  • 3.服务增加新的接口:
前言
尽管现在SpringCloud现在盛行市场,但是使用的dubbo的公司也大量存在,之前我使用SpringCloud的时候也借鉴了dubbo的api的架构,直接@FeignClient("classServer")注入接口的实例,完成微服务之间的调用。架构如下:
DSC0001.jpg

就是借鉴了dubbo的api在controller层抽象出来一层接口。我算是同时使用过SpringCloud和Dubbo,二者确实都有优缺点,不是这篇文章讨论的重点,这篇文章主要讨论下我们使用dubbo的时候什么时候升级版本号。
1.接口里面方法的参数发生变化:
当方法里面的参数发生变化:比如旧的代码:
f(int a)->(int a,int b)
如果是这种的改造的话,消费者代码和服务者代码都的改变,服务需要重新部署,版本号升不升级已经作用不大。
2.接口里面增加新的方法:
举例:
Public interface A{ 
   
   Integer  f a(int b); 
 
   
} 
升级为: 
 
Public interface A{ 
   
  Integer  f a(int b); 
   
  String  f c (String d);
此时应该版本升级,1.0.0->1.0.1,此种版本升级是为了避免非本地环境的其他环境服务重启引用同一个包而没有实现新方法导致构建失败的情况发生。
3.服务增加新的接口:
举例子:
Public interface A{ 
   
   Integer  f a(int b); 
 
   
} 
增加: 
Public interface A{ 
   
   Integer  f a(int b); 
 
   
} 
Public interface B{ 
   
   Integer  f c(int d); 
 
   
}
此种服务中增加新的接口文件,无论版本是否升级不会造成冲突无法构建的情况发生。
总结
虽然说版本升级是一件小事情,但是如果不注意的话还会产生很大的项目问题,导致服务无法启动的情况发生,如果你有不同的想法,欢迎关注我的公众号:Java时间屋 随时交流。
原文链接:https://mp.weixin.qq.com/s/FGC7E4HrQRUhXVb-flVNtA

关注下面的标签,发现更多相似文章