【发布时间】:2018-07-12 04:50:25
【问题描述】:
我使用 Eureka 进行服务发现,使用 Zuul+ribbon 作为反向代理和负载均衡器。 我在 Eureka 下注册了 2 个实例,如下所示:
MYSERVICE n/a (2) (2) UP (2) - MYHOST:MyService:8888 , MYHOST:MyService:9999
下面是我的zuul配置:
@EnableZuulProxy
@EnableDiscoveryClient
zuul:
debug.request: true
sensitiveHeaders:
routes:
ecm:
path: /myservice/**
serviceId: MYSERVICE
stripPrefix: false
host:
maxTotalConnections: 200
maxPerRouteConnections: 30
RibbonRoutingFilter:
route.disable: false
我想要一个过滤器或拦截器,它可以帮助我记录我的请求 URL、我的请求参数和 Zuul 选择的服务器。
我尝试扩展以下内容:
@Component
public class RibbonInterceptor extends ZoneAvoidanceRule {
@Override
public Server choose(Object key) {
Server choose = super.choose(key);
System.out.println(choose);
return choose;
}
但是,这只是给了我来自 Ribbon 的服务器信息,而这里的 Ribbon 只是选择一个服务器。我想从 Zuul 获得此信息以及请求详细信息。
请帮忙!!
【问题讨论】:
-
您是否尝试过创建 Zuul
post过滤器?可能有关于选择哪个端点的信息,甚至可能在标题中 -
Zuul 过滤器没有详细暴露功能区相关的东西。已经尝试通过实现 PRE、ROUTE 和 POST 过滤器。
标签: spring spring-boot spring-cloud netflix-zuul netflix-ribbon