在上一篇文章《Spring Cloud微服务项目模板系列(六)微服务灰度测试/发布》我们介绍了通过配置ribbon来进行灰度发布的实施,主要的流程是通过gateway来进行判断。在实际业务中,可能会涉及到微服务链路很长,需要进行灰度发布和测试的是尾端的微服务,例如我们这里的product-service服务。
上图完整的表达了,这里的尾端服务进行灰度测试/发布。这里的order-service会直接使用feign来调用product-service-b服务。所以这里我们完整的流程应该如下:
1、product-service部署两套,分别在nacos注册的时候添加spring.cloud.nacos.discovery.metadata.grayTag=true,另外一套product-server在配置文件中不需要添加grayTag=true 2、在order-service中声明一下调用product-service需要使用自定义的ribbon。
所以我们详细的步骤如下:
一、添加nacos的meta
分别在product-service中的配置文件中添加上如下的值:
spring: cloud: nacos: discovery: namespace: e058c047-2fc2-4291-8328-d8634fd9502f server-addr: 192.168.31.218:8848 metadata: grayTag: true
另外一部分的product-service不需要添加
spring: cloud: nacos: discovery: namespace: e058c047-2fc2-4291-8328-d8634fd9502f server-addr: 192.168.31.218:8848
完事之后,我们把produce-service的服务也启动起来。
二、配置order-service的ribbon策略
这里我们需要像上面说的,控制order-service的ribbon,因此我们需要在order-service的application中添加如下的配置
@RibbonClients(value = { @RibbonClient(value = "product-service",configuration = GrayRuleConfig.class) })
当然这里的GrayRuleConfig还是用的上一篇文章的GrayRuleConfig类。
此时我们就可以直接进行调用了,
这里的测试和上一篇文章的测试是一样的,大家可以看看效果。
最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...