【技术实现步骤摘要】
基于微服务的实时调用链跟踪方法
本专利技术属于通信
,涉及一种基于微服务的实时调用链跟踪方法。
技术介绍
目前微服务已经成为IT互联网技术中非常火的名词,微服务架构的思想就是将整体业务,根据业务领域拆分成一个个独立的模块。每个微服务模块独立部署,微服务之间的关系是松耦合的。微服务的这些特性注定了微服务架构天生是一个分布式架构,微服务模块之间通过拆分后的接口进行交互,并且是无状态的服务。在这种架构下,一个完整的业务流程很可能会经过多个微服务的处理和转发。所以在我们日常的业务中经过会遇到以下的一些场景:1、用户在某APP上下单购买某个产品失败,到底是APP界面调CRM系统出错了,还是APP调柜台系统出错了,亦或是APP调CRM系统,CRM再调柜台出错了;2、用户在办理某项业务时,总会有一定比例的失败,那是否是某个微服务集群中的某个节点出现了问题;3、在某次微服务的调用中,对于数据层的访问性能很差,想知道是访问缓存服务器(例如Redis)性能出了问题,还是访问关系型数据库(例如MYSQL)时某条SQL执行时间过长?现有技术中,业务请求的完成要调用不同服务器上的多个 ...
【技术保护点】
1.一种基于微服务的实时调用链跟踪方法,其特征在于:包括以下步骤:
【技术特征摘要】
1.一种基于微服务的实时调用链跟踪方法,其特征在于:包括以下步骤:、在每次服务发起时会生成一个全局唯一的traceID,并在链路调用过程中,traceID会传递到每个链路环节,通过这个traceID将每个孤立的调用串联起来,调用链跟踪流式计数器应用将相同traceID的日志信息收集到一起,计算整个链路的耗时与调用次数和各个链路环节的耗时与调用次数,并写入Hbase,生成调用链追踪日志,用于链路追踪与性能优化;、通过调用链的深度和广度信息,获取微服务调用的时序层次信息,并且识别循环嵌套调用;调用链路中每个链路节点都会生成一个chainID,用于区分调用链中调用顺序与嵌套层次;、改造微服务RPC框架,在调用时将traceID以及chainID进行传递,在服务端收到请求后将traceID设置到ThreadLocal中,同时根据传过来的父链路chainID,生成表示该链路顺序和嵌套关系的chainID;、改造微服务RPC框架中提供了获取traceID的接口,让开发者随时获取当前线程访问中的traceID,用于定位问题。2.根据权利要求1所述的基于微服务的实时调用链跟踪方法,其特征在于:所述调用链追踪日志的生成,是在RPC框架中采用添加过滤器类收集监控消息格式数据,并异步发往kafka消息队列,通过kafka的哈希算法将相同traceID发往同一个kafkapatition,使得调用链中各个接口的监控日志都发往同一个地方,为后续...
【专利技术属性】
技术研发人员:吴俊,
申请(专利权)人:苏州人之众信息技术有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。