扩展zuul代理

jus*_*ser 6 reverse-proxy spring-cloud netflix-eureka netflix-zuul

我们通过在eureka服务注册表中注册了多个实例来扩展我们系统中的所有服务.

此外,它们还由前面的zuul服务器代理.

我的问题是,当从客户端访问时,我们如何确保zuul代理的可伸缩性.

我能想到的一个解决方案是在eureka注册表中注册多个代理实例.但是,如果这样做,我们如何决定将哪些实例暴露给客户端.

ode*_*dia 4

我们在应用程序中遇到了同样的问题,后端有多种类型的微服务类型应用程序的多个实例。所有在 Eureka 注册的服务器。问题是我们还配置了多个安全网关(基于这个优秀教程中描述的架构:https ://spring.io/guides/tutorials/spring-security-and-angular-js/ )。

最终,我们决定使用硬件 http 负载均衡器,以循环方式调用我们的安全网关(我们的解决方案是本地的)。

我们使用 Redis 和 @EnableHttpRedisSession 注释来使 spring 会话在所有服务器之间同步,因此 http 负载均衡器不必处理粘性会话或状态考虑因素。它只是对所有安全网关进行循环。负载均衡器是否命中 SG1、SG2 或 SG3 并不重要,它们都共享来自 Redis 的相同会话信息(也配置为使用 Redis Sentinel 进行故障转移)。