- 1.接口里面方法的參數發生變化:
- 2.接口里面增加新的方法:
- 3.服務增加新的接口:
前言
盡管現在SpringCloud現在盛行市場,但是使用的dubbo的公司也大量存在,之前我使用SpringCloud的時候也借鑒了dubbo的api的架構,直接@FeignClient("classServer")注入接口的實例,完成微服務之間的調用。架構如下:
就是借鑒了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