略微加速

略速 - 互联网笔记

nginx 唯一 $request_id 在微服务架构中的应用

2021-04-26 leiting (2843阅读)

标签 nginx

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日志中显示效果如下:


北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3