Zuul的高可用非常关键,因为外部请求到后端服务的流量都会经过Zuul。故而在生产环境下一般都需要部署高可用的Zuul以避免单点故障。愿意了解源码的朋友直接求求交流分享技术:二一四七七七五六三三
一 Zuul客户端也注册到Eureka Server上
这种情况下,Zuul的高可用非常简单,只须将多个Zuul节点注册到Eureka Server上,就可实现Zuul的高可用。此时Zuul的高可用与其他微服务的高可用没什么区别。
如下图,当Zuul客户端也注册到Eureka Server上时,只须部署多个Zuul节点即可实现其高可用。Zuul客户端会自动从Eureka Server中查询Zuul Server的列表,并使用Ribbon负责均衡地请求Zuul集群。
二 Zuul客户端未注册到Eureka Server上
现实中,这种场景更多,例如,Zuul客户端是一个手机APP——不可能让所有的手机终端都注册到Eureka Server上。这种情况下,可借助一个额外的负载均衡器来实现Zuul的高可用,例如Nginx、HAProxy、F5等。
如下图,Zuul客户端请求发送到负载均衡器,负载均衡器将请求转发到其代理的其中一个Zuul节点。这样,就可以实现Zuul的高可用。
整体代码结构如下:资料和源码来源