查看原文
其他

Zuul的高可用

周立 IT牧场 2019-07-12

近期挺多朋友问到Zuul如何高可用,这里详细探讨一下。

Zuul的高可用非常关键,因为外部请求到后端微服务的流量都会经过Zuul。故而在生产环境中,我们一般都需要部署高可用的Zuul以避免单点故障。

笔者分两种场景讨论Zuul的高可用。

Zuul客户端也注册到了Eureka Server上

这种情况下,Zuul的高可用非常简单,只需将多个Zuul节点注册到Eureka Server上,就可实现Zuul的高可用。此时,Zuul的高可用与其他微服务的高可用没什么区别。


图8-7 Zuul高可用架构图

如图8-7,当Zuul客户端也注册到Eureka Server上时,只需部署多个Zuul节点即可实现其高可用。Zuul客户端会自动从Eureka Server中查询Zuul Server的列表,并使用Ribbon负载均衡地请求Zuul集群。

这种场景一般用于Sidecar。


Zuul客户端未注册到Eureka Server上

现实中,这种场景往往更常见,例如,Zuul客户端是一个手机APP——我们不可能让所有的手机终端都注册到Eureka Server上。这种情况下,我们可借助一个额外的负载均衡器来实现Zuul的高可用,例如Nginx、HAProxy、F5等。



图8-8 Zuul高可用架构图

如图8-8,Zuul客户端将请求发送到负载均衡器,负载均衡器将请求转发到其代理的其中一个Zuul节点。这样,就可以实现Zuul的高可用。

节选自《Spring Cloud与Docker微服务架构实战》8.10节

版权声明


本文采用 CC BY 3.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

关注我

Spring For All 社区

新书推荐


敢不敢点开阅读原文啊?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存