我正在研究一个基于dropwizard的项目。我想在过滤器上记录进入请求的HTTP标头上的相关性ID,并在响应中出现故障时也将其记录下来。任何想法如何做到这一点?我正在做一个过滤器:
public class CorrelationIdServerFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain)
throws IOException, ServletException {
}
@Override
public void destroy() {
}
然后将其注册到我的应用程序类中。
如何捕获并记录相关ID?
答案 0 :(得分:3)
可以随时使用解决方案:
模式非常简单,请验证request
是否已经有CorrelationId
标头,如果是,则将标头添加到ThreadLocal
的{{1}}或其他地方很容易检索数据。如果没有生成新的,通常是MDC
。
将UUID
标头传递给您调用的所有服务,请注意线程切换,例如如果是异步调用或使用Hystrix等断路器。
如果您使用的是使用MDC或类似工具的记录器,则将标头添加到您的记录模式中。
将标题添加到响应中。