网关的负载或请求分发如何用在灰度发布上

来源:4-5 商品服务编码(上)

慕粉4125737

2020-05-18

老师,对于服务多实例做负载均衡我有一个问题。
比如同一个服务我在容器环境里部署了多套, service name都是一样的,instance-id 不一样。
通常我们说的网关做负载均衡,但网关的配置里只是把某个请求的路径路由到一个service name上。然后就按轮询的方式发送给不同的应用实例了。
在网关做负载均衡的时候是不是只有轮询这一种形式。比如我想做个灰度发布,让一部分人先用某个实例,其他人还用老的实例。但前端无感知,调用链接不变。这种逻辑是要在网关内实现吗?它有没有办法指定某些人的(或某些ip)请求分发到某个特定的版本(instanceid). 这个问题细分的话,我觉得主要是解决这样两个问题
1) 怎么区分出哪些请求是特定的同一批人发出来的。
2) 微服务的网关Zuul,或springcloud gateway, 它可以路由请求到某个特定的实例上吗?

写回答

1回答

廖师兄

2020-05-21

灰度发布,现在没有统一的方案。大致可以分成2种。

  1. 运维上处理,比如通过Nginx,rancher(课程后面会讲)

  2. Java代码里处理。需要自己开发,看看 https://segmentfault.com/a/1190000017412946


如果你要做到精细控制,比如根据不同的请求头路由到不同的实例,那就需要在Java代码里处理了。

0
0

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

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

5674 学习 · 2489 问题

查看课程