Spring Cloud 之 Zuul+Eureka+Apollo实现灰度发布(二十)

PS:源码已上传Github, 欢迎指教。https://github.com/shileishmily/spring-cloud-x.git

什么是灰度发布呢?

要想了解这个问题就要先明白什么是灰度。灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。

 

上一节讲了Apollo作为配置中心的基本使用,但其更为强大的地方在于可以和Zuul+Eureka无缝集成,实现灰度发布。

本篇主要演示应用新版本发布后,我们只希望指定的用户路由到我们的新版本服务器,其他用户仍然访问我们的老版本,如下图:

Spring Cloud 之 Zuul+Eureka+Apollo实现灰度发布(二十)

图中会使用Zuul,Apollo,Eeureka,这在之前我们已经讲过,大家可以看看之前的文章。本篇除了要对spring-cloud-gateway模块进行改造,还要新建两个模块x-demo-springcloud-gray-provider,x-demo-springcloud-gray-consumer对灰度进行测试使用。服务提供者和消费者在我们之前的pay-service,order-service,user-service基础上进行改造也可以,为了让代码看的更清晰,我们选择新建两个模块演示。

 

改造思路:

1、新建一个spring-cloud-gray-core模块,该模块实现apollo配置监听,feign,http请求拦截(因为我们要在请求头中加入灰度version),以及自定义Ribbon负载均衡策略等等

 

未完待续...

 

上一篇:【Spring Boot】SpringBoot 整合 apollo


下一篇:MQTT + Apache-apollo服务器的搭建