基于Dubbo实现的灰度发布
项目类型:jar
调用服务提供者和服务提供者,验证是否进入灰度服务。
核心jar包,所有微服务均引用该包,用于负载自定义策略规则,是实现灰度发布的核心架包。
项目类型:jar
拉取灰度策略,进行请求的把标签操作。
用于配置灰度信息 请求url:http://ip:port/index.htm#/admin/apps
通过灰度版本的控制,实现符合灰度策略的对象,优先进入灰度服务进行体验。
例如,根据不同的策略,有根据不同的渠道、地域、门店、品牌等,优先使用不同的服务。例如,广州地域的用户,仅能使用基于广州部署的微服务。
例如,业务场景,根据不同的渠道和来源进行下单。微信的下单,仅能调用微信的order-service服务;官网下单,仅能调用官网的order-service下单; 通过这样的方式,上层业务无须调用何种具体服务统一底层进行负载调用,实现业务的解耦和服务的可插拔配置;
测试/验证流程说明:
走正常标签【release】,并进行轮询策略
说明下,灰度服务和正常服务不能并存在同一个服务里面。 例如:dubbo-gray-user-provider 10.200.102.95:20898 既是灰度服务,又是正常服务。
灰度角色:走灰度标签【灰度配置信息】,根据灰度策略进行路由访问
灰度角色:走灰度标签【灰度配置信息】,未能发现灰度服务,走正常服务。
准备工作: 1.启动所有服务: 【order-service服务,order-service2服务,user-service服务,user-service2服务】
2.设置灰度标签和正常服务标签 设置order-service服务为【正常标签】,user-service服务为【灰度标签】,其他服务均不设置。
4.随机组合处理 4.1.1 配置多个order-service服务为正常服务,测试是否进行轮询操作:
4.1.2 配置多个user-service服务为灰度服务,测试是否进行轮询操作:
准备工作:
-
复原灰度标签和正常标签操作,根据标签和服务信息,触发对应的灰度服务列表【分离】
-
设置灰度标签和正常服务标签 设置user-service服务为【灰度标签】,order-service服务为【正常标签】,其他服务均不设置。
准备工作:
-
复原灰度标签和正常标签操作,根据标签和服务信息,触发对应的灰度服务列表【分离】
-
设置灰度标签和正常服务标签 设置user-service服务为【灰度标签】,order-service服务为【灰度标签】,其他服务均不设置。
准备工作: