我试图记录服务之间的端到端通信,但是我正在努力寻找嵌套调用的方式。
我为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)还是可以帮助我了解多个服务之间端到端通信的深度?或者有人可以为我指出正确的方向,如何实施这种方法?