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

开发 前端
尽管现在SpringCloud现在盛行市场,但是使用的dubbo的公司也大量存在,之前我使用SpringCloud的时候也借鉴了dubbo的api的架构,直接@FeignClient("classServer")注入接口的实例,完成微服务之间的调用。
本文转载自微信公众号「Java时间屋」,作者Jack佳 。转载本文请联系Java时间屋公众号。
  • 1.接口里面方法的参数发生变化:
  • 2.接口里面增加新的方法:
  • 3.服务增加新的接口:

前言

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

就是借鉴了dubbo的api在controller层抽象出来一层接口。我算是同时使用过SpringCloud和Dubbo,二者确实都有优缺点,不是这篇文章讨论的重点,这篇文章主要讨论下我们使用dubbo的时候什么时候升级版本号。

1.接口里面方法的参数发生变化:

当方法里面的参数发生变化:比如旧的代码:

  1. f(int a)->(int a,int b) 

如果是这种的改造的话,消费者代码和服务者代码都的改变,服务需要重新部署,版本号升不升级已经作用不大。

2.接口里面增加新的方法:

举例:

  1. Public interface A{ 
  2.      
  3.    Integer  f a(int b); 
  4.  
  5.      
  6. 升级为: 
  7.  
  8. Public interface A{ 
  9.      
  10.   Integer  f a(int b); 
  11.      
  12.   String  f c (String d); 
  13.      

此时应该版本升级,1.0.0->1.0.1,此种版本升级是为了避免非本地环境的其他环境服务重启引用同一个包而没有实现新方法导致构建失败的情况发生。

3.服务增加新的接口:

举例子:

  1. Public interface A{ 
  2.      
  3.    Integer  f a(int b); 
  4.  
  5.      
  6. 增加: 
  7. Public interface A{ 
  8.      
  9.    Integer  f a(int b); 
  10.  
  11.      
  12. Public interface B{ 
  13.      
  14.    Integer  f c(int d); 
  15.  
  16.      

此种服务中增加新的接口文件,无论版本是否升级不会造成冲突无法构建的情况发生。

总结

虽然说版本升级是一件小事情,但是如果不注意的话还会产生很大的项目问题,导致服务无法启动的情况发生,如果你有不同的想法,欢迎关注我的公众号:Java时间屋 随时交流。

 

责任编辑:武晓燕 来源: Java时间屋
相关推荐

2021-08-11 08:32:24

Firefox英特尔LLVM

2024-07-17 09:39:05

软件版本号管理

2014-12-15 14:02:48

iOS版本号苹果

2010-11-08 10:07:45

Chrome

2021-03-29 23:07:25

Windows 10Windows微软

2015-03-27 09:55:13

Android 5.1升级

2010-02-06 13:49:08

Linux samba

2024-07-08 13:56:12

微服务API代码

2023-01-09 17:46:07

项目版本号字段

2020-05-12 11:25:50

MySQLES数据库

2017-05-15 09:55:07

2022-02-18 10:46:28

FirefoxChrome浏览器

2016-01-21 10:58:41

Node.js开发者

2018-09-10 09:05:17

微软Windows 10系统更新

2015-07-22 10:09:59

Android M版本号

2023-02-27 14:51:40

MySQL数据库

2017-03-30 16:56:43

Windows 10Windows版本号

2009-02-12 16:31:39

Windows7贝塔版本号

2015-07-08 15:55:01

NSStringcopystrong

2010-06-30 16:41:02

识别SQL Serve
点赞
收藏

51CTO技术栈公众号