CN113992664A - 一种集群通信的方法、相关装置及存储介质 - Google Patents

一种集群通信的方法、相关装置及存储介质 Download PDF

Info

Publication number
CN113992664A
CN113992664A CN202010658203.5A CN202010658203A CN113992664A CN 113992664 A CN113992664 A CN 113992664A CN 202010658203 A CN202010658203 A CN 202010658203A CN 113992664 A CN113992664 A CN 113992664A
Authority
CN
China
Prior art keywords
message
slave node
identifier
slave
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010658203.5A
Other languages
English (en)
Other versions
CN113992664B (zh
Inventor
裴俊宇
于兴红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010658203.5A priority Critical patent/CN113992664B/zh
Publication of CN113992664A publication Critical patent/CN113992664A/zh
Application granted granted Critical
Publication of CN113992664B publication Critical patent/CN113992664B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

一种集群通信的方法、相关装置及存储介质
技术领域
本申请实施例涉及事务处理领域,尤其涉及一种集群通信的方法、相关装置及存储介质。
背景技术
微服务架构中,一个大的服务中的各个子服务按照不同的维度进行拆分,一次外部请求往往需要涉及到多个子模块。随着拆分的维度越来越细小,子模块越来越多并且职责专一,即便子模块之间的调用关系复杂。也可以采用链路追踪技术直观的分析请求的调用链路,以及定位调用链路中的问题。
在微服务架构中,各个服务之间的调用关系比较复杂。一个HTTP请求可能会调用多个不同的微服务来处理,在调用过程中可能因为某个服务异常(网络延迟过高或发送错误)导致请求失败,所有需要有服务追踪来监控,方便快速定位问题点。Spring CloudSleuth提供了分布式服务链路监控的解决方案。
在使用Sleut定位问题的过程包括:先在本次请求中找到一个可区别的信息,比如说单号、账户名称等,然后在所有日志中检索这个可识别的信息,找到本次请求经过的至少一个子模块,每个子模块的日志中记录该子模块的上游子模块的唯一随机数。最后,基于各子模块中的随机数进行向上迭代检索,依次获取本次请求所经过的所有子模块中各子模块的上游子模块的随机数,最终获得最上游子模块的所有下游子模块,进而根据最上游子模块和所有下游子模块得到该请求的完整调用链路。
服务追踪的追踪单元是从客户发起请求(request)抵达被追踪系统的边界开始,到被追踪系统向客户返回响应(response)为止的过程,称为一个“trace”。每个trace中会调用若干个服务,为了记录调用了哪些服务,以及每次调用的消耗时间等信息,在每次调用服务时,埋入一个调用记录,称为一个“span”。这样,若干个有序的span就组成了一个trace。在系统向外界提供服务的过程中,会不断地有请求和响应发生,也就会不断生成trace,把这些带有span的trace记录下来,就可以描绘出一幅系统的服务拓扑图。附带上span中的响应时间,以及请求成功与否等信息,就可以在发生问题的时候,找到异常的服务;根据历史数据,还可以从系统整体层面分析出哪里性能差,定位性能优化的目标。
在对现有技术的研究和实践过程中,本申请实施例的发明人发现,由于各子模块的随机数是由人工输入在子模块的日志中,可能导致某个参与调用请求的子模块的随机数缺失,此外,微服务架构中的日志数量非常庞大,因此,通过向上迭代检索的方式获取调用链路的耗时较长。此外,该向上迭代方式获取的调用链路仅仅只能表达每两个相邻子模块之间的调用关系,并不能指示不用子模块之间的请求内容。因此,在定位该请求中出现的问题时,只能依附于日志来定位问题,一方面,问题定位耗时长,另一方面,定位问题的准确率不高。
发明内容
本申请实施例提供了一种集群通信的方法、相关装置及存储介质,能够提高链路追踪的效率和准确率。
第一方面中,本申请实施例提供一种集群通信的方法,所述方法应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:
从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
将所述第一消息中的第一标识更新为第二标识;
将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
向所述第二从节点发送更新后的所述第一消息。
第二方面中,本申请实施例提供一种集群通信的方法,所述方法应用于集群中的第一从节点,所述集群还包括中继节点和至少两个从节点,所述至少两个从节点包括所述第一从节点、第二从节点和第三从节点,所述第二从节点为所述第一从节点的上一跳从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:
从所述中继节点接收第一消息;
获取所述第一消息中携带的上一跳从节点的标识;
将所述第一消息中的所述上一跳从节点的标识更新为所述第一从节点的第一标识;
向所述中继节点发送携带所述第一标识的第一消息,以使所述中继节点将所述第一消息中的第一标识更新为所述第二从节点的第二标识,将所述第一标识与所述第二标识的第一对应关系更新至关系集合,并向所述第二从节点发送更新后的所述第一消息。
第三方面中,本申请实施例提供一种集群通信装置,具有实现对应于上述第一方面提供的集群通信的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,该集群通信装置应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述集群通信装置包括:
收发模块,用于从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
处理模块,用于将所述收发模块接收的所述第一消息中的第一标识更新为第二标识;以及将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
所述收发模块还用于向所述第二从节点发送更新后的所述第一消息。
一种可能的设计中,所述第一消息还携带初始标识,所述处理模块还用于:
若所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点,则将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合。
一种可能的设计中,所述第一消息包括预设字段,所述第一标识位于所述预设字段中。
一些实施方式中,所述处理模块将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合之前,还用于:
当所述中继节点首次接收到所述第一消息时,若确定所述第一消息中的预设字段为空,或者确定所述第一消息未携带所述预设字段,则确定所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点。
一种可能的设计中,所述处理模块还用于:
根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项;其中,所述目标调用关系为处理所述第一消息的调用方和被调用方之间的调用关系,所述第三对应关系为所述第一消息与调用链路的对应关系;所述调用链路为所述第一消息在所述集群中的处理路径。
一种可能的设计中,所述收发模块在所述处理模块根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项之前,还用于:
接收第二消息,所述第二消息用于查询所述第一消息在所述集群中的调用链路。
一种可能的设计中,所述处理模块在确定目标调用关系和第三对应关系中的至少一项之后,或者在所述收发模块接收第二消息之后,还用于:
根据所述目标调用关系和所述第三对应关系,确定所述调用链路中参与调用的调用方和被调用方。
一种可能的设计中,所述处理模块还用于:
通过所述收发模块接收第三消息,所述第三消息用于指示所述客户端发生预设事件;
根据所述预设事件确定业务事件;
根据所述业务事件和所述第三消息确定所述客户端的路径标识;
根据所述路径标识获取所述关系集合,所述关系集合包括参与处理所述第一消息的多个从节点之间的对应关系。
一种可能的设计中,所述处理模块还用于:
通过所述收发模块接收第四消息,所述第四消息携带目标标识,所述目标标识为所述至少两个从节点中的目标从节点的标识;所述第四消息用于请求获取所述目标从节点参与处理所述第一消息时的响应消息;
根据所述目标标识获取所述响应消息;
将所述第一消息中的请求体与所述响应消息中的响应体进行解包,得到所述响应消息的内容。
第四方面中,本申请实施例提供一种集群通信装置,具有实现对应于上述第二方面提供的集群通信的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,该集群通信装置应用于集群中的第一从节点,所述集群还包括中继节点和至少两个从节点,所述至少两个从节点包括所述第一从节点、第二从节点和第三从节点,所述第二从节点为所述第一从节点的上一跳从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述集群通信装置包括:
收发模块,用于从所述中继节点接收第一消息;
处理模块,用于获取所述第一消息中携带的上一跳从节点的标识;将所述第一消息中的所述上一跳从节点的标识更新为所述第一从节点的第一标识;
所述收发模块还用于向所述中继节点发送携带所述第一标识的第一消息,以使所述中继节点将所述第一消息中的第一标识更新为所述第二从节点的第二标识,将所述第一标识与所述第二标识的第一对应关系更新至关系集合,并向所述第二从节点发送更新后的所述第一消息。
本申请实施例又一方面提供了一种集群通信装置,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中的计算机程序来执行上述第一方面所述的方法。
本申请实施例又一方面提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面、第一方面种的各种可能的设计、或者第二方面中提供的方法。
相较于现有技术,本申请实施例提供的方案中,通过将集中式部署方式部署微服务架构,集中控制)各从节点(例如第一从节点和第二从节点)之间的通信,并通过在第一消息中不断更新从节点的标识,并基于从节点的标识记录相邻两次通信的从节点之间的对应关系,从而获取第一消息在微服务架构中的整个处理流程中的完整调用链路。一方面中,即便一个微服务架构在短时间内会接受很多的请求,也会在微服务架构内部形成很多条不同的调用链路,通过中继节点进行集中式管理从节点之间的调用对应关系和调用顺序,从而能够将每一次的请求均与一次微服务架构内的调用链路关联,因此,能够实现高效地、准确地链路追踪,也便于后期定位微服务架构中存在的问题,有效缩短问题定位时间、微服务架构的开发、测试时间,为微服务上线提供更好的性能基础,进而减少上线后才发现问题的现象。
附图说明
图1a为本申请实施例中微服务架构的一种示意图;
图1b为本申请实施例中微服务架构的一种示意图;
图2为本申请实施例中集群通信的方法的一种流程示意图;
图3a为本申请实施例中一次HTTP请求进入微服务架构后的完整处理流程示意图;
图3b为本申请实施例中调用链路的一种示意图;
图3c为本申请实施例中对响应消息进行解包后得到的解包内容的一种示意图;
图4为本申请实施例中集群通信装置的一种结构示意图;
图5为本申请实施例中执行集群通信的方法的实体设备的一种结构示意图;
图6为本申请实施例中服务器的一种架构示意图。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
本申请实施例供了一种集群通信的方法、相关装置及存储介质,可用于该方案可用于中继节点侧,中继节点可为电力系统、税务系统、政务平台、金融业务、电商业务等B2B、B2C等业务场景。例如在电商业务场景,中继节点可以记录和追踪每一笔订单交易的流程节点,并在订单交易出现异常时,准确的定位出问题所在的流程节点。又例如,在电力业务场景,中继节点可以记录和追踪每一笔电费缴纳的流程节点,并在电费缴纳出现异常时,准确的定位出问题所在的流程节点。从中继节点侧部署了集群通信装置,本申请实施例中集群通信装置可以是基于微服务架构部署。本申请实施例涉及云技术(Cloud technology)中的云计算、云存储、数据库、数据库管理系统以及大数据等技术,具体通过如下实施例进行说明:
其中,云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。例如,第二终端可以对观众用户的用户数据进行存储、以及存储从服务端获取的关联关系进行云存储。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID entity,ID)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。例如,本申请实施例中第二终端对观众用户的用户数据进行存储、以及存储从服务端获取的关联关系。
数据库管理系统(Database Management System,DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、即可扩展标记语言(Extensible MarkupLanguage,XML);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(Structured Query Language,SQL)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。例如,本申请实施例中第二终端在收到主播用户的指令后,可从数据库管理系统查询观众用户的用户数据,以及从服务端获取的关联关系。
一些实施方式中,本申请可采用如图1a所示的通信系统架构示意图。该通信系统包括至少一个客户端、问题定位工具和微服务架构,其中,微服务架构包括至少一个集群,至少有一个集群中包括至少一个中继节点。以下进行详细说明。
客户端,用于向微服务架构中的中继节点发送服务请求。
中继节点,用于接收来自客户端的服务请求即为微服务架构对外提供服务的入口。中继节点可记录服务请求在整个微服务架构中的处理环节,例如记录每个用户请求时,微服务架构内部产生了多少服务调用,及其调用关系。并为与该中继节点处于同一个集群的其他从节点提供中继服务,例如转发服务请求、设置标识处理链路的标识(例如随机数)。
从节点,用于依据服务请求来响应或处理该服务请求,每个从节点的任务可相互独立或者交叉,从节点可以为独立部署的实体设备,也可为本申请实施例不对此作限定。从节点也可也称作模块、子服务或工作单元等,本申请实施例不作限定。
其中,至少一个中继节点、多个从节点组成微服务架构。微服务架构是指将一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
在图1a中,分为下述三层:
第一层为微服务层,微服务层是微服务架构中的所有的模块(module)。
第二层为中继层,中继层是集中式部署方案中的总机即中继节点,模块之间的相互调用需要经过中继节点。
第三层为数据存储层,数据存储层是存储单元,存放中继节点获取的每一次调用产生的相关信息。从图1a可看出,调用发起者发起请求后,可将一次请求在微服务架构中的调用顺序分别标记位1~10,基于图1a所示的调用顺序即可得到如下调用链路:调用发起者-模块A-模块B-模块C-模块D。
图1b为微服务架构的一种逻辑划分示意图。例如,用户通过个人电脑和手机接入微服务架构,该微服务架构分为产品服务、订单服务和用户服务这三类子服务。产品服务、订单服务和用户服务各自都维护一个存储单元。例如产品服务为用户提供产品服务,并将用户在使用该产品服务时所产生的数据存储到存储单元中。
其中,需要特别说明的是,本申请实施例涉及的中继节点可以为服务器,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例主要提供以下技术方案:
将集中式的部署方式应用于微服务架构的部署,即使用集中式部署方式部署微服务架构,并用于链路追踪。具体来说,以从节点为子服务为例,所有子服务之间的通信都需要经过一个中继节点,子服务之间调用经过上述中继节点时,中继节点都需要为被调方生成一个随机数2并且将随机数2存入此次请求的请求体之中。调用方向被调方发送请求时也需要携带调用到自身时携带的随机数1,经过中继节点时中继节点也会获取到调用方携带的随机数1。此外,中继节点记录以下几种对应关系:
对应关系1:调用方携带的随机数1与中继节点生成的发送给被调方的随机数2之间的对应关系。
对应关系2:请求携带的可识别标识与第一个被调子服务的随机数之间的对应关系2。
这样,中继节点根据对应关系1和对应关系2即可得到对应关系3、对应关系4:
对应关系3:调用方与被调方的调用对应关系3。
对应关系4:请求与调用链路之间的对应关系4。
本申请实施例中,中继节点还可以根据对应关系1和对应关系2得到其他可能的数据组织形式,从而实现链路追踪的方式。
本申请实施例主要用于测试环境,在测试环境中定位链路配置、性能等问题,便于针对定位出的问题来改善整个集群服务的性能,便于集群服务上线后使用。参照图2,以下介绍本申请实施例所提供的一种集群通信的方法,所述方法应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系。本申请实施例包括:
201、第一从节点接收来自客户端发送的第一消息。
其中,所述第一消息携带所述第一从节点的第一标识。
一些实施方式中,第一标识可为第一从节点生成的随机数,第一从节点的节点名称、节点编号、网络地址、服务地址、服务名称等。
例如,第一从节点为基于业务服务模块化的子服务时,第一标识可为该子服务的服务名称。例如,第一从节点为账务清算的子服务1,那么,该第一标识为该子服务1的服务名称“账务清算”。又例如,第一从节点为电力缴费系统中的电费缴费的子服务2,那么,该第一标识为该子服务2的服务名称“电费缴费”。
一些实施方式中,所述第一消息还携带初始标识。该初始标识可为账号、订单号、携带认证口令(token)等,可表示为初始标签(init label)。
一些实施方式中,该第一从节点可为第一消息进入所述集群后第一个接收到该第一消息的从节点,也可以是经过中继节点转发第一消息的接收方,本申请实施例不对此作限定。
202、所述第一从节点向中继节点发送所述第一消息。
203、所述中继节点将所述第一消息中的第一标识更新为第二标识,并将所述第一标识与所述第二标识的第一对应关系更新至关系集合,即保存所述第一标识与所述第二标识的第一对应关系。
一些实施方式中,第一标识与第二标识可为字符串、数字、文字、符号、图像、图标等中的至少一种组合,本申请实施例不对此作限定。例如,第一标识为随机数0010,第二标识为随机数0011;或者,第一标识为随机数0010,第二标识为随机数00101。第一标识与第二标识之间可存在规律变化或者随机变化。
一些实施方式中,考虑到第一从节点是否为第一消息进入所述集群后第一个接收到该第一消息的从节点时中继节点对各从节点的标识之间的对应关系会做区别处理,下面按照A、B两种情况介绍:
A、第一从节点是否为第一消息进入所述集群后第一个接收到该第一消息的从节点时。中继节点可查询第一消息中是否携带初始标识,若所述第一消息还携带初始标识,则所述方法还包括:
若所述第二从节点为第一个被调用的从节点,则保存所述初始标识与所述第一标识之间的第二对应关系。
例如,当客户端的一个服务请求(例如上述第一消息)第一次进入微服务也即是第一次经过中级节点进行转发时,中继节点获取该服务请求中的预设字段中的预设标识(init_label),该预设字段为可识别字段,例如账号、单号或者携带的认证token等。并生成不为0随机数(graphid)放入请求体的预设字段中,并将对应关系{init_label,graphid}记录到存储单元中。
例如,请求的报文头的cookie属性中的ticket或者token等。生成不为0随机数graphid_new放入该请求的请求体中,并将对应关系{init_label,graphid_new}记录到存储单元中。
B、当第一从节点为经过中继节点转发第一消息的接收方时。
例如,若一个请求不是第一次经过中继节点,则中继节点记录该第一消息中已有的graph_id,并且重新生成不为0随机数graph_id放入对下一模块请求的预设字段中,将对应关系{原有graph_id,新生成graph_id}存储到存储单元中。为了区分原有graph_id和新生成的graph_id,我们分别记之为graph_id_old与graphid_new。
204、所述中继节点向所述第二从节点发送更新后的所述第一消息。
如此循环往复,每当第一消息要从当前的从节点进入下一跳的从节点时,中继节点都会执行上述201-204中的步骤,直至第一消息处理完毕,最终即可获取到处理第一消息的整个完整关系集合。最终得到的关系集合参与处理所述第一消息的多个从节点之间的对应关系。
本申请实施例中,通过将集中式部署方式部署微服务架构,集中控制)各从节点(例如第一从节点和第二从节点)之间的通信,并通过在第一消息中不断更新从节点的标识,并基于从节点的标识记录相邻两次通信的从节点之间的对应关系,从而获取第一消息在微服务架构中的整个处理流程中的完整调用链路。一方面中,即便一个微服务架构在短时间内会接受很多的请求,也会在微服务架构内部形成很多条不同的调用链路,通过中继节点进行集中式管理从节点之间的调用对应关系和调用顺序,从而能够将每一次的请求均与一次微服务架构内的调用链路关联,因此,能够实现高效地、准确地链路追踪,也便于后期定位微服务架构中存在的问题,有效缩短问题定位时间、微服务架构的开发、测试时间,为微服务上线提供更好的性能基础,进而减少上线后才发现问题的现象。
另一方面中,能够确定对微服务一次完整的调用经过了哪些从节点,并且这些从节点的调用顺序。例如,在一次对微服务的调用中,由中继节点记录下模块A调用了模块B,以及模块B调用了模块C和模块D,并基于各模块的随机数来确定在模块A调用模块B的调用中,模块B接下来调用的模块是C,而非D。
可选的,在本申请实施例的一些实施例中,若第一消息在微服务架构中处理完毕,或者在微服务架构的处理过程中,中继节点收到查询消息,那么可以基于上述第一消息进入集群后所更新的完整的关系集合(即表示所有调用方与被调用方之间的调用顺序和调用对应关系)去逐一查找到每次调用中的调用方和被调用方。或者中继节点主动去整理好每次调用中的调用方和被调用方,便于后续快速的响应查询消息。具体来说,本申请实施例还包括:
根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项;其中,所述目标调用关系为处理所述第一消息的调用方和被调用方之间的调用关系,所述第三对应关系为所述第一消息与调用链路的对应关系;所述调用链路为所述第一消息在所述集群中的处理路径。
一些实施方式中,根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项之前,所述方法还包括:
接收第二消息,所述第二消息用于查询所述第一消息在所述集群中的调用链路。即上述确定目标调用关系和第三对应关系中的至少一项是由于第二消息触发。
一些实施方式中,在确定目标调用关系和第三对应关系中的至少一项之后,或者在接收第二消息之后,中继节点还可以根据所述目标调用关系和所述第三对应关系,确定所述调用链路中参与调用的调用方和被调用方,可以是每次调用的调用方和被调用方,也可以是部分调用的调用方和被调用方,本申请实施例不对此作限定。具体可以结合第一消息对应的业务服务的高频问题,以及高频问题所属的子服务(即从节点)来确定需要确定的调用方和被调用方。
可见,通过这种方式,能够快速地、清晰地、准确地获取到每次调用中的调用方和被调用方,因此,能够提高确定每次调用中的调用方和被调用方的效率、准确性。
可选的,在本申请实施例的一些实施例中,当客户端发生预设事件(例如交易失败、交易关闭或故障等)时,所述方法还包括:
接收第三消息,所述第三消息用于指示所述客户端发生预设事件;
根据所述预设事件确定业务事件;
根据所述业务事件和所述第三消息确定所述客户端的路径标识;
根据所述路径标识获取所述关系集合,所述关系集合包括参与处理所述第一消息的多个从节点之间的对应关系。
可见,通过该方式,能够快速地根据客户端的路径标识(例如trace ID)获取到对应的关系集合,便于后续基于该关系集合对该预设事件进行分析、以及定位或追溯到发生预设事件的从节点,提高链路追踪效率和准确率,也能够有效缩短获取完整的调用链路的耗时。
可选的,在本申请实施例的一些实施例中,为便于更精准的定位所述预设事件的详细信息,还可以通过从节点的标识(例如graphid)查询在每一跳处理第一消息时的具体响应的内容。具体来说,中继节点还可以执行下述操作:
接收第四消息,所述第四消息携带目标标识,所述目标标识为所述至少两个从节点中的目标从节点的标识;所述第四消息用于请求获取所述目标从节点参与处理所述第一消息时的响应消息;
根据所述目标标识获取所述响应消息;
将所述第一消息中的请求体与所述响应消息中的响应体进行解包,得到所述响应消息的内容。
可见,通过目标标识定位目标从节点处理第一消息时的响应消息,并对请求体与响应体进行解包,即可获知每次响应消息的内容,便于分析定位出的问题。
可选的,在本申请实施例的一些实施例中,微服务结构可以采用Sleuth技术来实现链路追踪和问题定位。Sleuth涉及Span、Trace和Annotation。
Span:代表了一个基础的工作单元,例如本申请实施例中的从节点。每一个不同的工作单元都通过一个64位的ID来唯一标识,称为Span ID。另外,在工作单元中还存储了一个用来串联其他工作单元的ID,它也通过一个64位的ID来唯一标识,称为Trace ID。在同一条请求链路中的不同工作单元都会有不同的Span ID,但是它们的Trace ID是相同的,所以通过Trace ID可以将一次请求中依赖的所有依赖请求串联起来形成请求链路。
Trace:是由一系列具有相同Trace ID的Span串联形成的一个树状结构。在复杂的分布式系统中,每一个外部请求通常都会产生一个复杂的树状结构的Trace。
Annotation:用来及时地记录一个事件的存在,例如记录第一从节点调用第二从节点,记录调用过程中出现的异常事件。
在Sleuth中定义了下面四个核心Annotation来标识一个HTTP请求的开始和结束:
(1)cs:该Annotation用来记录客户端发起了一个HTTP请求,同时它也标识了这个HTTP请求的开始。
(2)sr:该Annotation用来记录服务端接收到了HTTP请求,并准备开始处理它。
(3)ss:该Annotation用来记录服务端处理完HTTP请求后准备发送响应消息。
(4)cr:该Annotation用来记录客户端接收到服务端的回复,同时它也标识了这个HTTP请求的结束。
如图3a所示,为整个微服务架构中,一次HTTP请求进入微服务架构后的完整处理流程。客户端发送了一个HTTP请求到树状结构1(trace-1),trace-1依赖于树状结构2(trace-2)的服务,所以trace-1再发送一个HTTP请求到trace-2,待trace-2返回响应之后,trace-1再组织响应结果返回给客户端。
由于这些标签都源自同一个HTTP请求,所以它的Trace ID相同。由于标签1是起始节点,标签10是结束节点,因此标签1和标签2的Trace ID与Span ID相同。根据Span ID,可以发现在这些标签中一共产生了4个不同ID的Span,这4个Span分别代表了这样4个工作单元。其中Span T记录了客户端的HTTP请求到达trace-1和trace-1发送HTTP请求的HTTP响应的两个事件,因此可以计算出HTTP请求响应过程的总延迟时间。
为便于理解,以包含个中继节点、1个存储单元、3个从节点的微服务架构为例。客户端向中继节点发送请求Q,下面依次从调用、存储以及问题定位三个方面进行说明:
一、请求Q在微服务架构中的调用流程
首先,假设这个请求Q会请求从节点A,但是这个请求Q在集中式的架构中不直接请求从节点A,而是先请求中继节点,中继节点判断请求Q第一次进入微服务中,则进行如下过程:
(1)中继节点从请求Q中提取特殊表示,cookie中的token.
(2)随机生成随机数r,random1,将这个随机数r填入中继节点调用从节点A的预设字段中。
(3)将{token,random1}保存在存储单元中。
(4)将{random1,从节点A,request,response,time}保存在存储单元中。
(5)中继节点调用从节点A,进而进入请求Q的第一次调用流程。
随后,从节点A会调用从节点B,同样的,从节点A实际上会调用中继节点,中继节点会进行如下过程:
(1)记录从节点A调用中继节点请求中的预设字段,记为random1。
(2)生成随机数random2,将这个随机数random2填入中继节点调用从节点B的预设字段中。
(3)将{random1,random2}保存在存储单元。
(4)将{random2,从节点B,request,response,time}保存在存储单元。
(5)中继节点调用从节点B。
以此类推,接下来从节点B调用从节点C时也可参考从节点A调用从节点B的流程,不作赘述。最终可得到如图3b所示的一种调用链路示意图。
二:存储单元现存的数据
由上可知,请求Q在微服务架构中结束调用后,存储单元现存的数据包括以下项:
token:random1
random1:moduleA、request、response、time
random1:random2
random2:moduleB、request、response、time
ramdom2:random3
random3:moduleC、request、response、time
三、问题定位
由于目前已知请求Q的token,如果想获取请求Q的调用链,则根据上述存储单元中现存的数据可知,请求Q的调用链为:请求Q->A->B->C,如果将请求Q的调用链进行解压并解析,即可获取调用的具体内容,例如获取每次调用的request、response、time等调用相关信息。这些调用相关信息有助于判断某一次请求失败是何种原因所致,例如是某个从节点调用不通,还是请求超时等。调用相关信息(如图3c所示的解包内容)
图1a至图3c中任一项所对应的实施例中所提及的任一技术特征也同样适用于本申请实施例中的图4至图6所对应的实施例,后续类似之处不再赘述。
以上对本申请实施例中一种集群通信的方法进行说明,以下对执行上述集群通信的方法的装置进行介绍。
参阅图4,如图4所示的一种集群通信装置40的结构示意图,其可应用于微服务架构。本申请实施例中的集群通信装置40能够实现对应于上述图1a-图3c中任一所对应的实施例中所执行的集群通信的方法的步骤。集群通信装置40实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述集群通信装置40可包括处理模块401、收发模块402,所述处理模块401、所述收发模块402的功能实现可参考图1a-图3c中任一所对应的实施例中所执行的操作,此处不作赘述。例如,所述处理模块401可用于控制所述收发模块402的收发操作。一些实施方式中,当中继节点具备如图4所示的集群通信装置40的结构时,该集群通信装置40能够实现与本申请实施例中中继节点相同或相似的功能。具体来说,该集群通信装置40应用于集群中的中继节点时,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系。
所述收发模块402可用于从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
所述处理模块401可用于将所述收发模块402接收的所述第一消息中的第一标识更新为第二标识;以及将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
所述收发模块402还用于向所述第二从节点发送更新后的所述第一消息。
一些实施方式中,所述第一消息还携带初始标识,所述处理模块还用于:
若所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点,则将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合。
一些实施方式中,所述第一消息包括预设字段,所述第一标识位于所述预设字段中。
一些实施方式中,所述处理模块401将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合之前,还用于:
当所述中继节点首次接收到所述第一消息时,若确定所述第一消息中的预设字段为空,或者确定所述第一消息未携带所述预设字段,则确定所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点。
一些实施方式中,所述处理模块401还用于:
根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项;其中,所述目标调用关系为处理所述第一消息的调用方和被调用方之间的调用关系,所述第三对应关系为所述第一消息与调用链路的对应关系;所述调用链路为所述第一消息在所述集群中的处理路径。
一些实施方式中,所述收发模块402在所述处理模块401根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项之前,还用于:
接收第二消息,所述第二消息用于查询所述第一消息在所述集群中的调用链路。
一些实施方式中,所述处理模块401在确定目标调用关系和第三对应关系中的至少一项之后,或者在所述收发模块接收第二消息之后,还用于:
根据所述目标调用关系和所述第三对应关系,确定所述调用链路中参与调用的调用方和被调用方。
一些实施方式中,所述处理模块401还用于:
通过所述收发模块402接收第三消息,所述第三消息用于指示所述客户端发生预设事件;
根据所述预设事件确定业务事件;
根据所述业务事件和所述第三消息确定所述客户端的路径标识;
根据所述路径标识获取所述关系集合,所述关系集合包括参与处理所述第一消息的多个从节点之间的对应关系。
一些实施方式中,所述处理模块401还用于:
通过所述收发模块402接收第四消息,所述第四消息携带目标标识,所述目标标识为所述至少两个从节点中的目标从节点的标识;所述第四消息用于请求获取所述目标从节点参与处理所述第一消息时的响应消息;
根据所述目标标识获取所述响应消息;
将所述第一消息中的请求体与所述响应消息中的响应体进行解包,得到所述响应消息的内容。
可以理解的是,当第一从节点具备如图4所示的集群通信装置40的结构时,该集群通信装置40能够实现与本申请实施例中第一从节点相同或相似的功能。具体来说,该集群通信装置40应用于集群中的第一从节点时,所述收发模块402可用于从所述中继节点接收第一消息;
所述处理模块401可用于获取所述第一消息中携带的上一跳从节点的标识;将所述第一消息中的所述上一跳从节点的标识更新为所述第一从节点的第一标识;
所述收发模块402还用于向所述中继节点发送携带所述第一标识的第一消息,以使所述中继节点将所述第一消息中的第一标识更新为所述第二从节点的第二标识,将所述第一标识与所述第二标识的第一对应关系更新至关系集合,并向所述第二从节点发送更新后的所述第一消息。
上面从模块化功能实体的角度对本申请实施例中的集群通信装置40进行了描述,下面从硬件处理的角度分别对本申请实施例中的执行集群通信的方法的中继节点、第一从节点进行描述。需要说明的是,在本申请实施例图4所示的实施例中的收发模块602对应的实体设备可以为输入/输出单元、收发器、射频电路、通信模块和输出接口等,处理模块401对应的实体设备可以为处理器。图4所示的集群通信装置40可以具有如图5所示的结构,当图4所示的集群通信装置40具有如图5所示的结构时,图6中的处理器和输入输出单元能够实现前述对应该集群通信装置40的装置实施例提供的处理模块401、收发模块402相同或相似的功能,图5中的存储器存储处理器执行上述集群通信的方法时需要调用的计算机程序。
图6是本申请实施例提供的一种服务器结构示意图,该服务器620可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(英文全称:centralprocessing units,英文简称:CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器620上执行存储介质630中的一系列指令操作。
服务器620还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口657,和/或,一个或一个以上操作系统641,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
上述实施例中由服务器所执行的步骤可以基于该图6所示的服务器620的结构。例如上述实施例中由图6所示的装置60所执行的步骤可以基于该图6所示的服务器结构。例如,所述处理器622通过调用存储器632中的指令,执行以下操作:
通过输入输出接口657从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
将所述第一消息中的第一标识更新为第二标识;以及将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
通过输入输出接口657向所述第二从节点发送更新后的所述第一消息。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

Claims (13)

1.一种集群通信的方法,其特征在于,所述方法应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:
从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
将所述第一消息中的第一标识更新为第二标识;
将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
向所述第二从节点发送更新后的所述第一消息。
2.根据权利要求1所述的方法,其特征在于,所述第一消息还携带初始标识,所述方法还包括:
若所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点,则将所述初始标识与所述第一标识之间的第二对应关系更新至所述关系集合。
3.根据权利要求2所述的方法,其特征在于,所述第一消息包括预设字段,所述第一标识位于所述预设字段中。
4.根据权利要求2所述的方法,其特征在于,所述保存所述初始标识与所述第一标识之间的第二对应关系之前,所述方法还包括:
当所述中继节点首次接收到所述第一消息时,若确定所述第一消息中的预设字段为空,或者确定所述第一消息未携带所述预设字段,则确定所述第二从节点为所述第一消息进入所述集群后第一个被调用的从节点。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项;其中,所述目标调用关系为处理所述第一消息的调用方和被调用方之间的调用关系,所述第三对应关系为所述第一消息与调用链路的对应关系;所述调用链路为所述第一消息在所述集群中的处理路径。
6.根据权利要求5所述的方法,其特征在于,所述根据所述关系集合,确定目标调用关系和第三对应关系中的至少一项之前,所述方法还包括:
接收第二消息,所述第二消息用于查询所述第一消息在所述集群中的调用链路。
7.根据权利要求5或6所述的方法,其特征在于,所述确定目标调用关系和第三对应关系中的至少一项之后,或者在接收第二消息之后,所述方法还包括:
根据所述目标调用关系和所述第三对应关系,确定所述调用链路中参与调用的调用方和被调用方。
8.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
接收第三消息,所述第三消息用于指示所述客户端发生预设事件;
根据所述预设事件确定业务事件;
根据所述业务事件和所述第三消息确定所述客户端的路径标识;
根据所述路径标识获取所述关系集合,所述关系集合包括参与处理所述第一消息的多个从节点之间的对应关系。
9.根据权利要求3-6中任一项所述的方法,其特征在于,所述方法还包括:
接收第四消息,所述第四消息携带目标标识,所述目标标识为所述至少两个从节点中的目标从节点的标识;所述第四消息用于请求获取所述目标从节点参与处理所述第一消息时的响应消息;
根据所述目标标识获取所述响应消息;
将所述第一消息中的请求体与所述响应消息中的响应体进行解包,得到所述响应消息的内容。
10.一种集群通信的方法,其特征在于,所述集群通信的方法包括:
所述方法应用于集群中的第一从节点,所述集群还包括中继节点和至少两个从节点,所述至少两个从节点包括所述第一从节点、第二从节点和第三从节点,所述第二从节点为所述第一从节点的上一跳从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述方法包括:
从所述中继节点接收第一消息;
获取所述第一消息中携带的上一跳从节点的标识;
将所述第一消息中的所述上一跳从节点的标识更新为所述第一从节点的第一标识;
向所述中继节点发送携带所述第一标识的第一消息,以使所述中继节点将所述第一消息中的第一标识更新为所述第二从节点的第二标识,将所述第一标识与所述第二标识的第一对应关系更新至关系集合,并向所述第二从节点发送更新后的所述第一消息。
11.一种集群通信装置,其特征在于,所述集群通信装置应用于集群中的中继节点,所述集群还包括至少两个从节点,所述至少两个从节点包括第一从节点和第二从节点,所述第一从节点与所述第二从节点之间存在调用关系;所述集群通信装置包括:
收发模块,用于从所述第一从节点接收来自客户端的第一消息,所述第一消息携带所述第一从节点的第一标识;
处理模块,用于将所述收发模块接收的所述第一消息中的第一标识更新为第二标识;以及将所述第一标识与所述第二标识的第一对应关系更新至关系集合;
所述收发模块还用于向所述第二从节点发送更新后的所述第一消息。
12.一种集群通信装置,其特征在于,所述集群通信装置包括:
至少一个处理器、存储器和收发器;
其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行如权利要求1-9中任一项由中继节点执行的方法,或者执行如权利要求10中由第一从节点执行的方法。
13.一种计算机可读存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-9中任一项由中继节点执行的方法,或者执行如权利要求10中由第一从节点执行的方法。
CN202010658203.5A 2020-07-09 2020-07-09 一种集群通信的方法、相关装置及存储介质 Active CN113992664B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010658203.5A CN113992664B (zh) 2020-07-09 2020-07-09 一种集群通信的方法、相关装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010658203.5A CN113992664B (zh) 2020-07-09 2020-07-09 一种集群通信的方法、相关装置及存储介质

Publications (2)

Publication Number Publication Date
CN113992664A true CN113992664A (zh) 2022-01-28
CN113992664B CN113992664B (zh) 2023-05-09

Family

ID=79731272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010658203.5A Active CN113992664B (zh) 2020-07-09 2020-07-09 一种集群通信的方法、相关装置及存储介质

Country Status (1)

Country Link
CN (1) CN113992664B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501593A (zh) * 2023-06-25 2023-07-28 中国电信股份有限公司 服务的调用记录的处理方法、装置及微服务架构

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790718A (zh) * 2017-03-16 2017-05-31 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及系统
US20180181390A1 (en) * 2016-12-22 2018-06-28 Juniper Networks, Inc. Automatic scaling of microservices applications
CN110262889A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种链路追踪方法及装置
CN110445643A (zh) * 2019-07-25 2019-11-12 泰康保险集团股份有限公司 异步微服务调用链路跟踪方法、装置、介质及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180181390A1 (en) * 2016-12-22 2018-06-28 Juniper Networks, Inc. Automatic scaling of microservices applications
CN106790718A (zh) * 2017-03-16 2017-05-31 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及系统
CN110262889A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种链路追踪方法及装置
CN110445643A (zh) * 2019-07-25 2019-11-12 泰康保险集团股份有限公司 异步微服务调用链路跟踪方法、装置、介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501593A (zh) * 2023-06-25 2023-07-28 中国电信股份有限公司 服务的调用记录的处理方法、装置及微服务架构

Also Published As

Publication number Publication date
CN113992664B (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
US10560465B2 (en) Real time anomaly detection for data streams
CN107633016B (zh) 数据处理方法及装置和电子设备
CN110581890B (zh) 一种服务请求的路由方法和装置
CN111752799A (zh) 一种业务链路跟踪方法、装置、设备及储存介质
CN104346365A (zh) 确定与特定业务相关的关联日志的方法和装置
CN107133231B (zh) 一种数据获取方法和装置
CN106547646B (zh) 一种数据备份及恢复方法、数据备份及恢复装置
CN110162512A (zh) 一种日志检索方法、装置及存储介质
CN113992664B (zh) 一种集群通信的方法、相关装置及存储介质
CN111698326B (zh) 用于确定云服务资源的成本归属的方法和装置
CN110851343A (zh) 一种基于决策树的测试方法和装置
CN108183966A (zh) 一种云储存系统
US11582345B2 (en) Context data management interface for contact center
CN112306848B (zh) 微服务系统的架构视图生成方法及装置
CN113450223A (zh) 基于utxo模型的交易处理方法、装置、设备及存储介质
CN112765100A (zh) 查询日志的方法、系统、计算设备和介质
CN113762910A (zh) 一种单据监控方法和装置
CN111782428A (zh) 数据调用系统以及方法
CN105677692A (zh) 实时提供信息查询的信息系统与方法
CN113449003B (zh) 信息查询的方法、装置、电子设备及介质
CN117632445B (zh) 请求处理方法以及装置、任务执行方法以及装置
US20240028346A1 (en) Linking kubernetes resources with underlying cloud infrastructure
CN114844957B (zh) 链路报文转换方法、装置、设备、存储介质和程序产品
CN117112451B (zh) 测试方法、装置、电子设备及计算机可读存储介质
CN113691423B (zh) 数据流转路径的绘制方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant