Open forget99 opened 1 year ago
请问找到解决办法了吗?
请问找到解决办法了吗?
@xiaolajiyhy 找到了,apisix内置nginx,在java插件中可以通过requiredVars方法获取nginx内置变量,requestId就是请求唯一id,下面是解决办法:
@Override public List<String> requiredVars() { List<String> vars = new ArrayList<>(); vars.add("request_id"); return vars; }
@Override public void filter(HttpRequest request, HttpResponse response, PluginFilterChain chain) { String requestId = request.getVars("request_id"); }
@Override public void postFilter(PostRequest request, PostResponse response, PluginFilterChain chain) { String requestId = request.getVars("request_id"); }
请问找到解决办法了吗?
@xiaolajiyhy 找到了,apisix内置nginx,在java插件中可以通过requiredVars方法获取nginx内置变量,requestId就是请求唯一id,下面是解决办法:
@Override public List<String> requiredVars() { List<String> vars = new ArrayList<>(); vars.add("request_id"); return vars; }
@Override public void filter(HttpRequest request, HttpResponse response, PluginFilterChain chain) { String requestId = request.getVars("request_id"); }
@Override public void postFilter(PostRequest request, PostResponse response, PluginFilterChain chain) { String requestId = request.getVars("request_id"); }
感谢,我生成了一个uuid ,然后让上游在请求头里回传给我
Issue description
在路由上配置了一个前置插件ext-plugin-pre-req和后置插件ext-plugin-post-resp,在前置插件中获取请求信息,在后置插件中获取响应信息,在多线程环境下,如何将请求数据串联起来。使用线程id和requestId都会出现错乱。
code