当前位置: 首页 > wzjs >正文

北京最好的网站制作公司深圳市手机网站建设

北京最好的网站制作公司,深圳市手机网站建设,软文推广代理平台,济南网站建设安卓版实现原理 api入口或者网关处生成traceId,调用服务时优先检查是否头部带有traceId,有则复用,没有则生成 实现方式 处理api相关traceId 1.通过filter复用或者生成traceId,并且将traceId输入到响应头中 import java.io.IOExcept…

实现原理

api入口或者网关处生成traceId,调用服务时优先检查是否头部带有traceId,有则复用,没有则生成

实现方式

处理api相关traceId

1.通过filter复用或者生成traceId,并且将traceId输入到响应头中

import java.io.IOException;
import java.util.UUID;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.MDC;
import org.springframework.web.filter.OncePerRequestFilter;public class TraceIdFilter extends OncePerRequestFilter {public TraceIdFilter() {}protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {String traceId = request.getHeader("X-Trace-Id");if (traceId == null) {traceId = this.generateTraceId();}MDC.put("traceId", traceId);response.setHeader("X-Trace-Id", traceId);try {filterChain.doFilter(request, response);} finally {MDC.clear();}}private String generateTraceId() {return UUID.randomUUID().toString().replace("-", "");}
}

 2、在对应项目中启用filter

@Configuration
public class WebFilterConfig {@Beanpublic FilterRegistrationBean<TraceIdFilter> loggingFilter() {FilterRegistrationBean<TraceIdFilter> registrationBean = new FilterRegistrationBean<>();registrationBean.setFilter(new TraceIdFilter());registrationBean.addUrlPatterns("/*"); // 只对特定 URL 匹配return registrationBean;}
}

Feign调用时传递traceId

1、声明拦截器(feign调用时从mdc获取traceId放入请求头中)

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.slf4j.MDC;public class FeIgnMCDInterceptor implements RequestInterceptor {public FeIgnMCDInterceptor() {}public void apply(RequestTemplate template) {String traceId = MDC.get("traceId");if (traceId != null) {template.header("X-Trace-Id", new String[]{traceId});}}
}

2、启用拦截器

// 任意位置注册为springbean即可
@Bean
public FeIgnMCDInterceptor feIgnMCDInterceptor() {return new FeIgnMCDInterceptor();
}

日志配置文件中打印traceId

<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [${application_name}] [%X{traceId}] [%thread] %-5level %logger - [%method,%line] - %msg%n" />

http://www.dtcms.com/wzjs/817936.html

相关文章:

  • 网页设计师专业培训揭阳seo网站管理
  • wordpress get style ui惠州百度推广排名优化
  • 购物商城网站建设方案做网站公司赚钱么
  • 网站建设企业类型是什么有了云服务器怎么做网站
  • 乔拓云智能建站wap网
  • 淮安市广德育建设网站google网站管理员中心
  • 大兴 网站建设wordpress软件著作权
  • 大规模301让网站快速排名百度百度网址大全
  • 个人虚拟网站粤嵌培训4个月收费
  • 简洁的网站建设合同肥西网站推广公司
  • delphi 做直播网站深圳市手机网站建设报价
  • 网站开发技术人员域名的作用是什么
  • 网站设置子目录个人网站的设计与开发
  • 网站设计第一步怎么做重庆seo入门教程
  • 重庆网站房地产长春网站建设880元
  • 南昌网站建设公司服务器如何制作app软件
  • 做网站组织结构框架例子深圳网站建设比较
  • 百度网站认证v1wordpress怎么找到php文件路径
  • 汽车类网站搭建网站建设技术工具
  • 网站搭建的注意事项3d模拟房子装修
  • 域名网站注册最划算杭州网络推广
  • 济南营销网站建设价格做盗版频网站
  • 上海市建设注册管理网站中山市西区网站制作
  • 医疗网站建设及优化方案app软件推广文案的范文
  • 花20亿做网站赣州网站建设公司
  • 英文网站建设目的网站建设课后心得
  • 胶州建设局网站怎么自己做APP网站
  • 北京模板开发建站品牌营销策划ppt
  • 专业网站建设网站研发深圳公司软文广告经典案例短的
  • 上海网站 备案查询网上开店流程