1、nginx生成唯一ID的描述

在微服务架构中,多个微应用相互调用。系统日志排错显得尤为重要。通过$request_id 可是实现客户端->网关服务器->微服务集群A->>微服务集群B.... 实现日志串联。通过trace_id回显,跟踪每次调用路由。

后续如果日志服务器接ELK,可通过trace_id快速实现单次请求,各微服务间路由日志复盘。

2、nginx版本要求(>1.11.0,下图为nginx官方关于$request_id的描述)

3、具体nginx配置

 

server{
  set $trace_id "${request_id}";
  if ($http_x_atrace_id != "" ){
      set $trace_id "${http_x_atrace_id}";
  }
  add_header trace_id $trace_id;
  
  #配置反向代理时使用
  proxy_set_header x-atrace-id $trace_id;    
  
  ...
}

 

浏览器请求效果如下:

nginx日志中显示效果如下:

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐