网关的负载或请求分发如何用在灰度发布上
来源:4-5 商品服务编码(上)
慕粉4125737
2020-05-18
老师,对于服务多实例做负载均衡我有一个问题。
比如同一个服务我在容器环境里部署了多套, service name都是一样的,instance-id 不一样。
通常我们说的网关做负载均衡,但网关的配置里只是把某个请求的路径路由到一个service name上。然后就按轮询的方式发送给不同的应用实例了。
在网关做负载均衡的时候是不是只有轮询这一种形式。比如我想做个灰度发布,让一部分人先用某个实例,其他人还用老的实例。但前端无感知,调用链接不变。这种逻辑是要在网关内实现吗?它有没有办法指定某些人的(或某些ip)请求分发到某个特定的版本(instanceid). 这个问题细分的话,我觉得主要是解决这样两个问题
1) 怎么区分出哪些请求是特定的同一批人发出来的。
2) 微服务的网关Zuul,或springcloud gateway, 它可以路由请求到某个特定的实例上吗?
写回答
1回答
-
廖师兄
2020-05-21
灰度发布,现在没有统一的方案。大致可以分成2种。
运维上处理,比如通过Nginx,rancher(课程后面会讲)
Java代码里处理。需要自己开发,看看 https://segmentfault.com/a/1190000017412946
如果你要做到精细控制,比如根据不同的请求头路由到不同的实例,那就需要在Java代码里处理了。
00
SpringCloud Finchley(M2+RELEASE+SR2)微服务实战
SpringCloud组件实现微服务,【已升级Finchley.Release】
5674 学习 · 2489 问题
相似问题