[发明专利]基于微服务的实时调用链跟踪方法在审
申请号: | 201910126968.1 | 申请日: | 2019-02-20 |
公开(公告)号: | CN109921927A | 公开(公告)日: | 2019-06-21 |
发明(设计)人: | 吴俊 | 申请(专利权)人: | 苏州人之众信息技术有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L12/26 |
代理公司: | 苏州翔远专利代理事务所(普通合伙) 32251 | 代理人: | 刘计成 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 调用链 服务调用 调用 嵌套 分布式缓存 数据库客户 调用关系 改进系统 关系梳理 生产问题 数据结构 性能信息 业务日志 业务信息 跟踪 运维 植入 串联 服务 监控 优化 环节 分析 开发 | ||
1.一种基于微服务的实时调用链跟踪方法,其特征在于:包括以下步骤:
、在每次服务发起时会生成一个全局唯一的traceID,并在链路调用过程中,traceID会传递到每个链路环节,通过这个traceID将每个孤立的调用串联起来,调用链跟踪流式计数器应用将相同traceID的日志信息收集到一起,计算整个链路的耗时与调用次数和各个链路环节的耗时与调用次数,并写入Hbase,生成调用链追踪日志,用于链路追踪与性能优化;
、通过调用链的深度和广度信息,获取微服务调用的时序层次信息,并且识别循环嵌套调用;调用链路中每个链路节点都会生成一个chainID,用于区分调用链中调用顺序与嵌套层次;
、改造微服务RPC框架,在调用时将traceID以及chainID进行传递,在服务端收到请求后将traceID设置到ThreadLocal中,同时根据传过来的父链路chainID,生成表示该链路顺序和嵌套关系的chainID;
、改造微服务RPC框架中提供了获取traceID的接口,让开发者随时获取当前线程访问中的traceID,用于定位问题。
2.根据权利要求1所述的基于微服务的实时调用链跟踪方法,其特征在于:所述调用链追踪日志的生成,是在RPC框架中采用添加过滤器类收集监控消息格式数据,并异步发往kafka消息队列,通过kafka的哈希算法将相同traceID 发往同一个kafka patition,使得调用链中各个接口的监控日志都发往同一个地方,为后续计算调用链做准备。
3.根据权利要求1所述的基于微服务的实时调用链跟踪方法,其特征在于:所述调用链跟踪流式计数器通过消费kafka调用链的追踪日志,通过traceID过滤出归属于同一次业务请求上调用链的数据,通过chainID排列出同一次调用链上接口调用顺序,生成叉树结构的对象,并生成chainKey,用于标识调用链,用traceID标识某次调用链实例。
4.根据权利要求3所述的基于微服务的实时调用链跟踪方法,其特征在于:所述通过chainID排列是指采用按照链式接口服务名称方法名称以及调用顺序生成的字符串排列。
5.根据权利要求3所述的基于微服务的实时调用链跟踪方法,其特征在于:根据所述调用链接口调用顺序方法生成chainKey统计每个调用链每秒的调用次数和平均响应时间,并实时写入时序性数据库Opentsdb,用于监控与告警,另外将traceID和调用链实例存入Hbase。
6.根据权利要求5所述的基于微服务的实时调用链跟踪方法,其特征在于:所述Hbase表将调用链结构数据chainKey和调用连实例数据分开存储,首先创建hbase chainKey表用于存调用链结构数据,数据量较小,chainKey的MD5值做为表的rowKey,chainKey字符串做为列值;再创建chain instance表,根据chainKey的MD5值拼接秒级时间戳储存每秒的调用连实例数据,列key值存traceID ,列value值存调用链实例数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州人之众信息技术有限公司,未经苏州人之众信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910126968.1/1.html,转载请声明来源钻瓜专利网。