Spring Interceptor跟踪端到端通信-嵌套调用的方式

时间:2018-09-15 17:03:45

标签: java spring logging interceptor

我试图记录服务之间的端到端通信,但是我正在努力寻找嵌套调用的方式。

我正在尝试实现以下目标(我对深度感兴趣): enter image description here

我为restTemplate做了一个拦截器

@Bean
public AuditRestInterceptor auditRequestInterceptor() {
    return new AuditRestInterceptor();
}

@Bean
public RestTemplate restTemplate() {
    RestTemplate template = new RestTemplate();
    template.setInterceptors(Arrays.asList(auditRequestInterceptor()));
    return template;
}

我还注册了拦截器,因此任何呼叫/ api / *都首先通过拦截器

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    super.onStartup(servletContext);
    FilterRegistration.Dynamic restAuditFilter = servletContext.addFilter("restAuditFilter",
            new AuditRequestFilter(null, InvocationProtocol.REST));
    restAuditFilter.addMappingForUrlPatterns(null, false, "/api/*");
}

现在在拦截器中,我想跟踪嵌套调用的方式(depthId),但是我找不到任何解决方案/算法。从春季开始有什么(例如ApplicationContext)还是可以帮助我了解多个服务之间端到端通信的深度?或者有人可以为我指出正确的方向,如何实施这种方法?

0 个答案:

没有答案