一种集群通信的方法、相关装置及存储介质制造方法及图纸

技术编号:32080562 阅读:9 留言:0更新日期:2022-01-29 17:57
本申请实施例提供一种集群通信的方法、相关装置及存储介质,方法应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;将所述第一消息中的第一标识更新为第二标识;将所述第一标识与所述第二标识的第一对应关系更新至关系集合;向所述第二从节点发送更新后的所述第一消息。本方案能够提高链路追踪的效率和准确率。够提高链路追踪的效率和准确率。够提高链路追踪的效率和准确率。

【技术实现步骤摘要】
一种集群通信的方法、相关装置及存储介质


[0001]本申请实施例涉及事务处理领域,尤其涉及一种集群通信的方法、相关装置及存储介质。

技术介绍

[0002]微服务架构中,一个大的服务中的各个子服务按照不同的维度进行拆分,一次外部请求往往需要涉及到多个子模块。随着拆分的维度越来越细小,子模块越来越多并且职责专一,即便子模块之间的调用关系复杂。也可以采用链路追踪技术直观的分析请求的调用链路,以及定位调用链路中的问题。
[0003]在微服务架构中,各个服务之间的调用关系比较复杂。一个HTTP请求可能会调用多个不同的微服务来处理,在调用过程中可能因为某个服务异常(网络延迟过高或发送错误)导致请求失败,所有需要有服务追踪来监控,方便快速定位问题点。Spring Cloud Sleuth提供了分布式服务链路监控的解决方案。
[0004]在使用Sleut定位问题的过程包括:先在本次请求中找到一个可区别的信息,比如说单号、账户名称等,然后在所有日志中检索这个可识别的信息,找到本次请求经过的至少一个子模块,每个子模块的日志中记录该子模块的上游子模块的唯一随机数。最后,基于各子模块中的随机数进行向上迭代检索,依次获取本次请求所经过的所有子模块中各子模块的上游子模块的随机数,最终获得最上游子模块的所有下游子模块,进而根据最上游子模块和所有下游子模块得到该请求的完整调用链路。
[0005]服务追踪的追踪单元是从客户发起请求(request)抵达被追踪系统的边界开始,到被追踪系统向客户返回响应(response)为止的过程,称为一个“trace”。每个trace中会调用若干个服务,为了记录调用了哪些服务,以及每次调用的消耗时间等信息,在每次调用服务时,埋入一个调用记录,称为一个“span”。这样,若干个有序的span就组成了一个trace。在系统向外界提供服务的过程中,会不断地有请求和响应发生,也就会不断生成trace,把这些带有span的trace记录下来,就可以描绘出一幅系统的服务拓扑图。附带上span中的响应时间,以及请求成功与否等信息,就可以在发生问题的时候,找到异常的服务;根据历史数据,还可以从系统整体层面分析出哪里性能差,定位性能优化的目标。
[0006]在对现有技术的研究和实践过程中,本申请实施例的专利技术人发现,由于各子模块的随机数是由人工输入在子模块的日志中,可能导致某个参与调用请求的子模块的随机数缺失,此外,微服务架构中的日志数量非常庞大,因此,通过向上迭代检索的方式获取调用链路的耗时较长。此外,该向上迭代方式获取的调用链路仅仅只能表达每两个相邻子模块之间的调用关系,并不能指示不用子模块之间的请求内容。因此,在定位该请求中出现的问题时,只能依附于日志来定位问题,一方面,问题定位耗时长,另一方面,定位问题的准确率不高。

技术实现思路

[0007]本申请实施例提供了一种集群通信的方法、相关装置及存储介质,能够提高链路追踪的效率和准确率。
[0008]第一方面中,本申请实施例提供一种集群通信的方法,所述方法应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:
[0009]从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
[0010]将所述第一消息中的第一标识更新为第二标识;
[0011]将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
[0012]向所述第二从节点发送更新后的所述第一消息。
[0013]第二方面中,本申请实施例提供一种集群通信的方法,所述方法应用于集群中的第一从节点,所述集群还包括中继节点和至少两个从节点,所述至少两个从节点包括所述第一从节点、第二从节点和第三从节点,所述第二从节点为所述第一从节点的上一跳从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:
[0014]从所述中继节点接收第一消息;
[0015]获取所述第一消息中携带的上一跳从节点的标识;
[0016]将所述第一消息中的所述上一跳从节点的标识更新为所述第一从节点的第一标识;
[0017]向所述中继节点发送携带所述第一标识的第一消息,以使所述中继节点将所述第一消息中的第一标识更新为所述第二从节点的第二标识,将所述第一标识与所述第二标识的第一对应关系更新至关系集合,并向所述第二从节点发送更新后的所述第一消息。
[0018]第三方面中,本申请实施例提供一种集群通信装置,具有实现对应于上述第一方面提供的集群通信的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
[0019]一种可能的设计中,该集群通信装置应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述集群通信装置包括:
[0020]收发模块,用于从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
[0021]处理模块,用于将所述收发模块接收的所述第一消息中的第一标识更新为第二标识;以及将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
[0022]所述收发模块还用于向所述第二从节点发送更新后的所述第一消息。
[0023]一种可能的设计中,所述第一消息还携带初始标识,所述处理模块还用于:
[0024]若所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点,则将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合。
[0025]一种可能的设计中,所述第一消息包括预设字段,所述第一标识位于所述预设字段中。
[0026]一些实施方式中,所述处理模块将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合之前,还用于:
[0027]当所述中继节点首次接收到所述第一消息时,若确定所述第一消息中的预设字段为空,或者确定所述第一消息未携带所述预设字段,则确定所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点。
[0028]一种可能的设计中,所述处理模块还用于:
[0029]根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项;其中,所述目标调用关系为处理所述第一消息的调用方和被调用方之间的调用关系,所述第三对应关系为所述第一消息与调用链路的对应关系;所述调用链路为所述第一消息在所述集群中的处理路径。
[0030]一种可能的设计中,所述收发模块在所述处理模块根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项之前,还用于:
[0031]接收第二消息,所述第二消息用于查询所述第一消息在所述集群中的调用链路。
[0032]一种可能的设计中,所述处理模块本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群通信的方法,其特征在于,所述方法应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;将所述第一消息中的第一标识更新为第二标识;将所述第一标识与所述第二标识的第一对应关系更新至关系集合;向所述第二从节点发送更新后的所述第一消息。2.根据权利要求1所述的方法,其特征在于,所述第一消息还携带初始标识,所述方法还包括:若所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点,则将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合。3.根据权利要求2所述的方法,其特征在于,所述第一消息包括预设字段,所述第一标识位于所述预设字段中。4.根据权利要求2所述的方法,其特征在于,所述保存所述初始标识与所述第一标识之间的第二对应关系之前,所述方法还包括:当所述中继节点首次接收到所述第一消息时,若确定所述第一消息中的预设字段为空,或者确定所述第一消息未携带所述预设字段,则确定所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项;其中,所述目标调用关系为处理所述第一消息的调用方和被调用方之间的调用关系,所述第三对应关系为所述第一消息与调用链路的对应关系;所述调用链路为所述第一消息在所述集群中的处理路径。6.根据权利要求5所述的方法,其特征在于,所述根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项之前,所述方法还包括:接收第二消息,所述第二消息用于查询所述第一消息在所述集群中的调用链路。7.根据权利要求5或6所述的方法,其特征在于,所述确定目标调用关系和第三对应关系中的至少一项之后,或者在接收第二消息之后,所述方法还包括:根据所述目标调用关系和所述第三对应关系,确定所述调用链路中参与调用的调用方和被调用方。8.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:接收第三消息,所述第三消息用于指示所述客户端发生预设事件;根据所述预设事件确定业务事件;根据所述业务事件和所述第三消息确定所述客户端的路径标识;根据所述路径标识获取所述关系集合,所述关系集合包括参与处理所述第一消...

【专利技术属性】
技术研发人员:裴俊宇于兴红
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1