Copy @Log4j2
@Component
public class ResponseFilter implements GlobalFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
Runnable runnable = () -> postGlobalFilter(exchange);
return chain.filter(exchange).then(Mono.fromRunnable(runnable));
}
private void postGlobalFilter(ServerWebExchange exchange) {
HttpHeaders requestHeaders = exchange.getRequest().getHeaders();
String correlationId = FilterUtils.getCorrelationId(requestHeaders);
log.debug("Adding the correlation id to the outbound headers. {}",
correlationId);
exchange.getResponse().getHeaders().add(
FilterUtils.CORRELATION_ID, correlationId);
log.debug("Completing outgoing request for {}.",
exchange.getRequest().getURI());
}
}
一旦我们实现了ResponseFilter,我们就可以启动我们的服务并使用它调用 licensing 或 organization 服务。一旦服务完成,您将在调用的HTTP响应头中看到tmx-correlation-id。
Copy http://localhost:8072/organization-service/v1/organization/100
Copy Adding the correlation id to the outbound headers. 3fef7f9d-0234-4a16-9736-22f5e9644f60
Completing outgoing request for http://localhost:8072/v1/organization/100.