消息跟踪方法、装置、电子设备及存储介质制造方法及图纸

技术编号:20825077 阅读:22 留言:0更新日期:2019-04-10 07:18
本申请公开了一种消息跟踪方法、装置、电子设备及存储介质。该方法在接收当前业务应用模块发送的更新消息后,确定更新消息是否包括跟踪标识;若不包括跟踪标识,则生成更新消息的跟踪标识,并获取当前业务应用模块的跟踪信息;若包括跟踪标识,则获取当前业务应用模块的跟踪信息;跟踪信息包括跟踪标识、当前业务应用模块的标识、历史业务应用模块的标识、当前业务应用模块的键值更新信息,之后当检测到业务应用模块的订阅信息中存在与当前业务应用模块有业务关联的关联业务应用模块时,向关联业务应用模块发送包括跟踪标识和当前业务应用模块的键值更新信息的订阅通告。该方法提高了消息跟踪的实时性与准确性。

【技术实现步骤摘要】
消息跟踪方法、装置、电子设备及存储介质
本申请涉及通信
,尤其涉及一种消息跟踪方法、装置、电子设备及存储介质。
技术介绍
当前越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生。现有的微服务架构是把整体的业务服务拆分成多个有明确功能的微服务组件,分布式的部署在服务器上,各个微服务组件之间通过RPC中间件技术相互调用。也就是说,现有的微服务跟踪方案是基于RPC调用的跟踪,每个RPC基本单元span包含客户端和服务器两个过程,如图1所示,RPC客户端在当前时刻发送一个请求(cs)后,服务端在当前时刻的100ms后接收到该请求(sr);在服务端对接收到的请求进行相应处理后,在当前时刻的200ms后发送一个该请求的响应(ss),客户端在当前时刻的300ms后接收到该响应(cr)。其中,cs:clientstart,表示客户端发起请求;sr:serverreceive,表示服务端收到请求;ss:serversend,表示服务端完成处理,并将结果发送给客户端;cr:clientreceive,表示客户端获取到服务端返回信息。在RPC调用的跟踪方法中服务端和客户端都会记录一个RPC的时间戳上下限。对于一条完整的RPC调用链记录了每个节点(如服务端或客户端)的调用延迟时间,通过该延迟时间,实时监控各个节点的运行情况。然而,专利技术人发现由于RPC采用同步处理技术,且一个业务流会经过多个微服务组件,客户端必须等到相应服务端的响应后才能进行该业务的RPC调用链的记录,导致消息跟踪的时效性不高。
技术实现思路
本申请实施例提供一种消息跟踪方法、装置、电子设备及存储介质,解决了现有技术的上述问题,以提高消息跟踪的时效性。第一方面,提供了一种消息跟踪方法,应用于消息中间件中,该方法包括:接收当前业务应用模块发送的更新消息;确定所述更新消息是否包括跟踪标识;若所述更新消息不包括跟踪标识,则生成所述更新消息的跟踪标识,并获取所述当前业务应用模块的跟踪信息;若所述更新消息包括跟踪标识,则获取所述当前业务应用模块的跟踪信息;其中,所述当前业务应用模块的跟踪信息包括所述跟踪标识、所述当前业务应用模块的标识、历史业务应用模块的标识、所述当前业务应用模块的键值更新信息,所述历史业务应用模块的标识为所述消息中间件存储的所述跟踪标识在经过所述当前业务应用模块前最后经过的业务应用模块的标识;以及,当检测到业务应用模块的订阅信息中存在与所述当前业务应用模块有业务关联的关联业务应用模块时,向所述关联业务应用模块发送包括所述跟踪标识和所述当前业务应用模块的键值更新信息的订阅通告,以使所述关联业务应用模块根据所述当前业务应用模块的更新信息和预设回调函数获取与所述当前业务应用模块的更新信息对应的所述关联业务应用模块的更新信息。在一个可选的实现中,获取所述当前业务应用模块的跟踪信息,包括:若所述更新消息不包括跟踪标识,则从所述更新消息获取所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;将所述跟踪标识存储在所述当前业务应用模块的键值更新信息所在字段的邻近新增字段中;设置所述历史业务应用模块的标识为预设根标识;将生成的跟踪标识、设置的预设根标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息组成所述当前业务应用模块的跟踪信息;若所述更新消息包括跟踪标识,则从所述更新消息获取所述跟踪标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;将所述跟踪标识存储在所述当前业务应用模块的键值更新信息所在字段的邻近新增字段中;查询所述跟踪标识在经过所述当前业务应用模块前最后经过的所述历史业务应用模块的标识;将所述跟踪标识、所述历史业务应用模块的标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息组成所述当前业务应用模块的跟踪信息。在一个可选的实现中,获取所述当前业务应用模块的跟踪信息之后,还包括:将所述跟踪信息写入操作日志。第二方面,提供了一种消息跟踪方法,应用于业务应用模块中,该方法包括:根据获取的键值更新信息,向消息中间件发送最初键值更新消息,所述最初键值更新消息包括当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;或者,接收所述消息中间件发送的订阅通告,所述订阅通告包括跟踪标识和与所述当前业务应用模块关联的关联业务应用模块的键值更新信息,所述跟踪标识是所述消息中间件根据所述最初键值更新消息生成的;根据所述关联业务应用模块的键值更新信息触发预设回调函数,获取所述当前业务应用模块的键值更新信息;向所述消息中间件发送更新消息,所述更新消息包括所述跟踪标识、当前业务应用模块的标识和所述当前业务应用模块的键值更新信息。在一个可选的实现中,接收消息中间件发送的订阅通告之后,还包括:将所述跟踪标识和所述关联业务应用模块的键值更新信息写入操作日志。第三方面,提供了一种消息跟踪装置,应用于消息中间件中,该装置包括:接收单元、确定单元、生成单元、获取单元和发送单元;所述接收单元,用于接收当前业务应用模块发送的更新消息;所述确定单元,用于确定所述更新消息是否包括跟踪标识;所述生成单元,用于若所述更新消息不包括跟踪标识,则生成所述更新消息的跟踪标识;所述获取单元,用于获取所述当前业务应用模块的跟踪信息;若所述更新消息包括跟踪标识,则获取所述当前业务应用模块的跟踪信息;其中,所述当前业务应用模块的跟踪信息包括所述跟踪标识、所述当前业务应用模块的标识、历史业务应用模块的标识、所述当前业务应用模块的键值更新信息,所述历史业务应用模块的标识为所述消息中间件存储的所述跟踪标识在经过所述当前业务应用模块前最后经过的业务应用模块的标识;以及,所述发送单元,用于当检测到业务应用模块的订阅信息中存在与所述当前业务应用模块有业务关联的关联业务应用模块时,向所述关联业务应用模块发送包括所述跟踪标识和所述当前业务应用模块的键值更新信息的订阅通告,以使所述关联业务应用模块根据所述当前业务应用模块的更新信息和预设回调函数获取与所述当前业务应用模块的更新信息对应的所述关联业务应用模块的更新信息。在一个可选的实现中,所述获取单元,具体用于:若所述更新消息不包括跟踪标识,则从所述更新消息获取所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;将所述跟踪标识存储在所述当前业务应用模块的键值更新信息所在字段的邻近新增字段中;设置所述历史业务应用模块的标识为预设根标识;将生成的跟踪标识、设置的预设根标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息组成所述当前业务应用模块的跟踪信息;若所述更新消息包括跟踪标识,则从所述更新消息获取所述跟踪标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;将所述跟踪标识存储在所述当前业务应用模块的键值更新信息所在字段的邻近新增字段中;查询所述跟踪标识在经过所述当前业务应用模块前最后经过的所述历史业务应用模块的标识;将所述跟踪标识、所述历史业务应用模块的标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息组成所述当前业务应用模块的跟踪信息。在一个可选的实现中,所述装置还包括写入单元;所述写入单元,用本文档来自技高网...

【技术保护点】
1.一种消息跟踪方法,应用于消息中间件中,其特征在于,所述方法包括:接收当前业务应用模块发送的更新消息;确定所述更新消息是否包括跟踪标识;若所述更新消息不包括跟踪标识,则生成所述更新消息的跟踪标识,并获取所述当前业务应用模块的跟踪信息;若所述更新消息包括跟踪标识,则获取所述当前业务应用模块的跟踪信息;其中,所述当前业务应用模块的跟踪信息包括所述跟踪标识、所述当前业务应用模块的标识、历史业务应用模块的标识、所述当前业务应用模块的键值更新信息,所述历史业务应用模块的标识为所述消息中间件存储的所述跟踪标识在经过所述当前业务应用模块前最后经过的业务应用模块的标识;以及,当检测到业务应用模块的订阅信息中存在与所述当前业务应用模块有业务关联的关联业务应用模块时,向所述关联业务应用模块发送包括所述跟踪标识和所述当前业务应用模块的键值更新信息的订阅通告,以使所述关联业务应用模块根据所述当前业务应用模块的更新信息和预设回调函数获取与所述当前业务应用模块的更新信息对应的所述关联业务应用模块的更新信息。

【技术特征摘要】
1.一种消息跟踪方法,应用于消息中间件中,其特征在于,所述方法包括:接收当前业务应用模块发送的更新消息;确定所述更新消息是否包括跟踪标识;若所述更新消息不包括跟踪标识,则生成所述更新消息的跟踪标识,并获取所述当前业务应用模块的跟踪信息;若所述更新消息包括跟踪标识,则获取所述当前业务应用模块的跟踪信息;其中,所述当前业务应用模块的跟踪信息包括所述跟踪标识、所述当前业务应用模块的标识、历史业务应用模块的标识、所述当前业务应用模块的键值更新信息,所述历史业务应用模块的标识为所述消息中间件存储的所述跟踪标识在经过所述当前业务应用模块前最后经过的业务应用模块的标识;以及,当检测到业务应用模块的订阅信息中存在与所述当前业务应用模块有业务关联的关联业务应用模块时,向所述关联业务应用模块发送包括所述跟踪标识和所述当前业务应用模块的键值更新信息的订阅通告,以使所述关联业务应用模块根据所述当前业务应用模块的更新信息和预设回调函数获取与所述当前业务应用模块的更新信息对应的所述关联业务应用模块的更新信息。2.如权利要求1所述的方法,其特征在于,获取所述当前业务应用模块的跟踪信息,包括:若所述更新消息不包括跟踪标识,则从所述更新消息获取所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;将所述跟踪标识存储在所述当前业务应用模块的键值更新信息所在字段的邻近新增字段中;设置所述历史业务应用模块的标识为预设根标识;将生成的跟踪标识、设置的预设根标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息组成所述当前业务应用模块的跟踪信息;若所述更新消息包括跟踪标识,则从所述更新消息获取所述跟踪标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;将所述跟踪标识存储在所述当前业务应用模块的键值更新信息所在字段的邻近新增字段中;查询所述跟踪标识在经过所述当前业务应用模块前最后经过的所述历史业务应用模块的标识;将所述跟踪标识、所述历史业务应用模块的标识、所述当前业务应用模块的标识和所述当前业务应用模块的键值更新信息组成所述当前业务应用模块的跟踪信息。3.如权利要求1或2所述的方法,其特征在于,获取所述当前业务应用模块的跟踪信息之后,还包括:将所述跟踪信息写入操作日志。4.一种消息跟踪方法,应用于业务应用模块中,其特征在于,所述方法包括:根据获取的键值更新信息,向消息中间件发送最初键值更新消息,所述最初键值更新消息包括当前业务应用模块的标识和所述当前业务应用模块的键值更新信息;或者,接收所述消息中间件发送的订阅通告,所述订阅通告包括跟踪标识和与所述当前业务应用模块关联的关联业务应用模块的键值更新信息,所述跟踪标识是所述消息中间件根据所述最初键值更新消息生成的;根据所述关联业务应用模块的键值更新信息触发预设回调函数,获取所述当前业务应用模块的键值更新信息;向所述消息中间件发送更新消息,所述更新消息包括所述跟踪标识、当前业务应用模块的标识和所述当前业务应用模块的键值更新信息。5.如权利要求4所述的方法,其特征在于,接收消息中间件发送的订阅通告之后,还包括:将所述跟踪标识和所述关联业务应用模块的键值更新信息写入操作日志。6.一种消息跟踪装置,应用于消息中间件中,其特征在于,所述装置包括:接收单元、确定单元、生成单元、获取单元和发送单元;所述接收单元,用于接收当前业务应用模块发送的更新消息;所述确定单元,用于确定所述更新消息是否包括跟踪标识;所述生成单元,用于若所述更新消息不包括跟踪标识,则生成所述更新消息的跟踪标识;所述获取单元,用于获取所述当前业务应用模块的跟...

【专利技术属性】
技术研发人员:林传阳林毅
申请(专利权)人:锐捷网络股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1