zuul url get serviceId

/ Spring Cloud / 没有评论 / 0浏览

使用场景

想监控接口的请求时长,根据url 获取对应的 serviceId,这样可以根据id从注册中心获取对应的实例,做很多事情,比如自动扩容,服务监控等特性

定位源码

所在 spring-cloud-netflix-zuul-2.1.1.RELEASE.jar PreDecorationFilter 属于前置过滤器,解析url

public Object run() {
     //获取当前 request 上下文
    RequestContext ctx = RequestContext.getCurrentContext();
     //获取请地址
    final String requestURI = this.urlPathHelper.getPathWithinApplication(ctx.getRequest());
    //获取 url 对应的serviceId
    Route route = this.routeLocator.getMatchingRoute(requestURI);
    if (route != null) {
    ......
}