如何实现灰度部署

来源:6-2 Config Server

qq_大飞_dhsH23

2018-12-04

师兄你好,现在我们只有一套eureka+zuul的环境,所有的服务都注册在这个环境上面,现在想实现将开发人员和测试人员的服务分离,即开发人员只调用有开发标识的服务,测试人员只测试带有测试标识的服务,现在做法如下
order和product 服务都分成两份(带上不同的元数据标识)注册到eureka上面,
spring-boot: run order1 -Dserver.port=8011 -Deureka.instance.metadata-map.running-mode=dev
spring-boot: run order2 -Dserver.port=8012 -Deureka.instance.metadata-map.running-mode=test

spring-boot: run product1 -Dserver.port=9021 -Deureka.instance.metadata-map.running-mode=dev
spring-boot: run product2 -Dserver.port=9022 -Deureka.instance.metadata-map.running-mode=test

想做到的效果是
开发人员客户端(header带dev标志)>>zuul>>order1>>proudct1
测试人员客户端(header带test标志)>>zuul>>order2>>proudct2

现在能做到在zuul那里分辨出是开发人员还是测试人员的请求,并调到对应的order服务。(通过开源插件ribbon-discovery-filter-spring-cloud-starter)
现在的问题是,order通过feign去调用product.如何让dev/test这个标识透传到每个微服务中去?让order1只找到product1, order2只找到product2?
我有个想法是在product项目上指定一种负载均衡调度方案去识别dev/test,不知道是否可行,求师兄指点迷津,万分感谢~~~

写回答

1回答

廖师兄

2018-12-04

课程中提到了ribbon的负载均衡策略,要实现你的需求,需要自定义一个负载均衡策略

0
0

SpringCloud Finchley(M2+RELEASE+SR2)微服务实战

SpringCloud组件实现微服务,【已升级Finchley.Release】

5674 学习 · 2489 问题

查看课程