Dubbo多版本控制


當系統進行升級時,一般都是采用“灰度發布(又稱為金絲雀發布)”過程。即在低壓力時段,讓部分消費者先調用新的提供者實現類,其余的仍然調用老的實現類,在新的實現類運行沒有問題的情況下,逐步讓所有消費者全部調用成新的實現類。多版本控制就是實現灰度發布的

一、創建提供者04-provider-version

(1) 創建工程

創建Maven的工程。

(2) 導入依賴

Spring的版本為4.3.16

需要的依賴有:

  • dubbo2.7.0版本依賴
  • zk客戶端curator依賴
  • servlet與jsp依賴
  • spring相關依賴
  • spring需要的commons-logging依賴
  • 自定義00-api依賴

   
   
  
  
          
  1. <dependencies>
  2. <!-- zk客戶端依賴:curator -->
  3. <dependency>
  4. <groupId>org.apache.curator </groupId>
  5. <artifactId>curator-recipes </artifactId>
  6. <version>2.13.0 </version>
  7. </dependency>
  8. <dependency>
  9. <groupId>org.apache.curator </groupId>
  10. <artifactId>curator-framework </artifactId>
  11. <version>2.13.0 </version>
  12. </dependency>
  13. <!--業務接口工程依賴-->
  14. <dependency>
  15. <groupId>00-api </groupId>
  16. <artifactId>00-api </artifactId>
  17. <version>1.0-SNAPSHOT </version>
  18. </dependency>
  19. <!-- dubbo依賴 -->
  20. <dependency>
  21. <groupId>org.apache.dubbo </groupId>
  22. <artifactId>dubbo </artifactId>
  23. <version>2.7.0 </version>
  24. </dependency>
  25. <!-- Spring依賴 -->
  26. <dependency>
  27. <groupId>org.springframework </groupId>
  28. <artifactId>spring-beans </artifactId>
  29. <version>${spring-version} </version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework </groupId>
  33. <artifactId>spring-core </artifactId>
  34. <version>${spring-version} </version>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.springframework </groupId>
  38. <artifactId>spring-context </artifactId>
  39. <version>${spring-version} </version>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework </groupId>
  43. <artifactId>spring-expression </artifactId>
  44. <version>${spring-version} </version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.springframework </groupId>
  48. <artifactId>spring-aop </artifactId>
  49. <version>${spring-version} </version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.springframework </groupId>
  53. <artifactId>spring-aspects </artifactId>
  54. <version>${spring-version} </version>
  55. </dependency>
  56. <dependency>
  57. <groupId>org.springframework </groupId>
  58. <artifactId>spring-tx </artifactId>
  59. <version>${spring-version} </version>
  60. </dependency>
  61. <dependency>
  62. <groupId>org.springframework </groupId>
  63. <artifactId>spring-jdbc </artifactId>
  64. <version>${spring-version} </version>
  65. </dependency>
  66. <!-- commons-logging依賴 -->
  67. <dependency>
  68. <groupId>commons-logging </groupId>
  69. <artifactId>commons-logging </artifactId>
  70. <version>1.2 </version>
  71. </dependency>
  72. </dependencies>

(3)定義兩個接口實現類

(4)修改配置文件

resources\META-INF\spring\spring-provider.xml目錄

指定版本0.0.1對應的是oldService實例,而版本0.0.2對應的是newService實例

二、創建消費者04-consumer-version

(1) 創建工程

(2) 導入依賴

和提供者一樣

(3) 創建消費者

(4) 修改配置文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM