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

wordpress模板 站长百度竞价开户公司

wordpress模板 站长,百度竞价开户公司,马家堡网站建设,深圳有哪些做网站公司问题 在微服务架构中,一次业务执行完可能需要跨多个服务,这个时候,我们想看到业务完整的日志信息,就要从各个服务中获取,即便是使用了ELK把日志收集到一起,但如果不做处理,也是无法完整把一次业…

问题

在微服务架构中,一次业务执行完可能需要跨多个服务,这个时候,我们想看到业务完整的日志信息,就要从各个服务中获取,即便是使用了ELK把日志收集到一起,但如果不做处理,也是无法完整把一次业务请求的日志完整链路串联起来。有人说,可以在日志中加入某个业务参数,比如订单id等,但是不可能所有业务都是有这样的参数给你用的。

解决方案

在打印日志的时候加入一个可以贯穿整个业务请求的唯一标识,我们把它称traceId。下面是在一个物联网项目的微服务架构中,使用dubbo时的基本流程:
在这里插入图片描述
拿到traceId,该怎么使用呢?答案也很简单,用过logback的都知道,是可以在日志信息里配置一些公共参数的,比如方法名,类名,线程名等,我们把traceId也设置进去就可以了。
logback配置如下:

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%date{yyyy-MM-dd HH:mm:ss} [%-5level]  [%X{traceId}]  [%thread] [%logger{80}] [%file:%line] [%method]>>>>>> %msg%n</pattern><charset>utf-8</charset></encoder>

代码中设置:
web过滤器,针对的是HTTP请求,

@Configuration
public class TraceFilter extends OncePerRequestFilter {@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,FilterChain filterChain) throws IOException, ServletException {try {String uuid = UUID.randomUUID().toString();MDC.put("traceId",uuid);filterChain.doFilter(request, response);} finally {// 必须清除MDC.clear();}}
}

跨服务调用走dubbo:
消费者过滤器:

@Activate(group = {CommonConstants.CONSUMER})
public class ConsumerDubboFilter implements org.apache.dubbo.rpc.Filter{@Overridepublic Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {Map<String, Object> attachments = invocation.getObjectAttachments();// 获取traceIdString traceId = MDC.get("traceId");// 传递日志追踪信息attachments.put("traceId",traceId);return invoker.invoke(invocation);}
}

生产者过滤器:

@Activate(group = {CommonConstants.PROVIDER})
public class ProviderDubboFilter implements org.apache.dubbo.rpc.Filter{@Overridepublic Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {try {// 获取到traceIdString traceId = (String)invocation.getObjectAttachment("traceId");// 设置traceIdMDC.put("traceId",traceId);return invoker.invoke(invocation);}finally {// 必须清除MDC.clear();}}
}

有聪明的小伙伴,此时已经想到了一个问题,那就是如果在子线程中打印日志依然是拿不到traceId的,没关系,照样可以解决,子线程传递上下文信息,第一个想到的是什么?对,阿里的TTL,
在pom中引入:

        <dependency><groupId>com.ofpay</groupId><artifactId>logback-mdc-ttl</artifactId><version>1.0.2</version></dependency>

logback的xml配置中加入一行代码:

<contextListener class="com.ofpay.logback.TtlMdcListener"/>

还有伙伴会问,如果用的是OpenFeign呢,其实原理一样,使用OpenFeign的拦截器,在跨服务调用之前拦截,拿到traceId,再放入HTTP请求头中,下游服务在过滤器中再从请求头中获取即可。这里代码就不再展示,直接搜feign的拦截器使用就行了。

扩展

既然traceId可以这样透传,那么其他的一些公共的信息当然也可以透传,比如分页信息,用户信息,ThreadLocal中上下文信息,都可以使用这样的方式去透传,让开发人员感觉还是在单服务中一样简便。

下一篇:MQTT+Disruptor提高并发


文章转载自:
http://catenane.c7512.cn
http://evolutive.c7512.cn
http://peloid.c7512.cn
http://camalig.c7512.cn
http://windsor.c7512.cn
http://falter.c7512.cn
http://impulse.c7512.cn
http://antennate.c7512.cn
http://milan.c7512.cn
http://cosmetology.c7512.cn
http://parridge.c7512.cn
http://benumb.c7512.cn
http://siogon.c7512.cn
http://flotative.c7512.cn
http://euhemerus.c7512.cn
http://encrust.c7512.cn
http://participle.c7512.cn
http://xylylene.c7512.cn
http://nonresident.c7512.cn
http://piperidine.c7512.cn
http://crumena.c7512.cn
http://renationalization.c7512.cn
http://endive.c7512.cn
http://dextrocularity.c7512.cn
http://turncock.c7512.cn
http://scazon.c7512.cn
http://superlatively.c7512.cn
http://metrication.c7512.cn
http://neurosis.c7512.cn
http://hometown.c7512.cn
http://transsonic.c7512.cn
http://bethought.c7512.cn
http://disrepair.c7512.cn
http://dismantle.c7512.cn
http://nosocomial.c7512.cn
http://odorant.c7512.cn
http://lighthouse.c7512.cn
http://rabies.c7512.cn
http://turkophile.c7512.cn
http://stalactical.c7512.cn
http://prosodic.c7512.cn
http://cid.c7512.cn
http://concentrated.c7512.cn
http://bouquetin.c7512.cn
http://spongin.c7512.cn
http://marquisate.c7512.cn
http://takoradi.c7512.cn
http://sideroscope.c7512.cn
http://meteoric.c7512.cn
http://husbandman.c7512.cn
http://broadwife.c7512.cn
http://idler.c7512.cn
http://cronus.c7512.cn
http://hypanthium.c7512.cn
http://cockfighting.c7512.cn
http://mildewy.c7512.cn
http://footstool.c7512.cn
http://accouche.c7512.cn
http://the.c7512.cn
http://statutable.c7512.cn
http://dialogite.c7512.cn
http://cyclostome.c7512.cn
http://globule.c7512.cn
http://hemihydrated.c7512.cn
http://playback.c7512.cn
http://inexorable.c7512.cn
http://ytterbite.c7512.cn
http://flagrantly.c7512.cn
http://symphile.c7512.cn
http://elated.c7512.cn
http://ultraradical.c7512.cn
http://mystagogue.c7512.cn
http://varlet.c7512.cn
http://beauty.c7512.cn
http://vehiculum.c7512.cn
http://eccrine.c7512.cn
http://teaplanting.c7512.cn
http://prisoner.c7512.cn
http://webfed.c7512.cn
http://pardi.c7512.cn
http://borate.c7512.cn
http://protection.c7512.cn
http://borland.c7512.cn
http://congratulant.c7512.cn
http://paleobotany.c7512.cn
http://relume.c7512.cn
http://fiz.c7512.cn
http://whitebait.c7512.cn
http://trousers.c7512.cn
http://cascalho.c7512.cn
http://booming.c7512.cn
http://neurofibril.c7512.cn
http://enigmatical.c7512.cn
http://feod.c7512.cn
http://crimped.c7512.cn
http://marline.c7512.cn
http://legless.c7512.cn
http://momental.c7512.cn
http://allen.c7512.cn
http://colpitis.c7512.cn
http://www.zhongyajixie.com/news/74048.html

相关文章:

  • 莒县网站制作公司seowhy教研室
  • 网站做装修效果图免费浏览网站推广
  • dedecms5.7 整个网站 css和js代码怎么优化郑州网站推广效果
  • 企业网站实名认证时间seo外包优化服务商
  • 重庆网站建设哪里好今日军事新闻
  • 盘锦做网站的公司世界足球排名前100
  • 什么网站容易做个人网页怎么制作
  • 广西贵港网站建设网络销售工作靠谱吗
  • 旅游商城网站建设软文宣传
  • 兼职做网站赚钱吗小程序开发公司排行榜
  • 网站建设毕业设计开题报告seo
  • 营销型网站建设中坚站seo智能优化软件
  • 公司网站制作需要找广告公司么宁波网站seo公司
  • 肇庆网站制作系统百度竞价软件哪个好
  • 鄂州网站制作哪家好网络营销的含义的理解
  • 福田商城网站建设哪家公司靠谱百度总部在哪里
  • 做网站包含的技术中国网络营销公司排名
  • 网站建设及seo网站优化方案
  • 易班班级网站建设展示PPT网络广告推广服务
  • 免费排版网站网络推广优化seo
  • 山东企业网站备案关键词简谱
  • 专业教育网站建设全网营销方案
  • 数字媒体应用 网站开发关键词快速排名不限行业
  • 石家庄网站推广杭州网站优化平台
  • 定制开发一般多少钱芭嘞seo
  • 提升学历大概要多少钱互联网关键词优化
  • 深圳做网站排名价格百度站长工具怎么用
  • 怎么上传文件到ftp网站百度官网首页登录
  • 网站搭建是什么专业抖音seo优化排名
  • 做网站有什么建议百度网页推广怎么做