zoukankan      html  css  js  c++  java
  • 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)修改配置文件

    resourcesMETA-INFspringspring-provider.xml目录

    指定版本0.0.1对应的是oldService实例,而版本0.0.2对应的是newService实例

    二、创建消费者04-consumer-version

    (1) 创建工程

    (2) 导入依赖

    和提供者一样

    (3) 创建消费者

    (4) 修改配置文件

  • 相关阅读:
    160. 两个链表的相交点 Intersection of Two Linked Lists
    单链表的C#实现
    14. 字符串数组的最长公共前缀 Longest Common Prefix
    67. 二进制字符串相加 Add Binary
    .NET框架中SortedSet源码(红黑树)
    Guest CPU model configuration in libvirt with QEMU/KVM
    libvirt cpu mode
    host capability
    Stacktack overview
    Installing StackTach
  • 原文地址:https://www.cnblogs.com/edda/p/13259862.html
Copyright © 2011-2022 走看看