我正在使用Spring Netflix Eureka,Zuul和Ribbon开发一个专门的动态Web应用程序路由器。我需要知道在Eureka中使用给定服务ID注册的服务器池中的Ribbon负载均衡器选择了哪个服务器用于路由请求。
Zuul似乎没有跟踪RequestContext中Ribbon选择的服务器。
上下文:这不是传统的无状态REST服务路由。此路由器管理使用不可用(目前)会话的旧Java Web应用程序池。这些传统服务器正在改装为Spring Boot Eureka感知应用程序。他们将在给定的服务器ID下注册Eureka。他们还将GUID注册为Eureka元数据,该元数据唯一地定义了应用程序的执行实例。
我正在实现一个粘性会话方案,它将Java会话ID与生成会话的服务器的唯一服务器ID(GUID)相关联。
因此,当收到带有会话cookie的请求时,我将使用我已编写的功能区规则和谓词过滤器(出于其他原因)将服务器列表过滤为只有GUID与会话关联的服务器
可能有其他方法可以做到这一点,但在我的情况下,除了了解服务器实际执行请求之外,我还有我需要的所有资料。