CN114840718A - 链路数据处理方法、装置、设备、存储介质和程序产品 - Google Patents

链路数据处理方法、装置、设备、存储介质和程序产品 Download PDF

Info

Publication number
CN114840718A
CN114840718A CN202210457315.3A CN202210457315A CN114840718A CN 114840718 A CN114840718 A CN 114840718A CN 202210457315 A CN202210457315 A CN 202210457315A CN 114840718 A CN114840718 A CN 114840718A
Authority
CN
China
Prior art keywords
link
identifier
distributed system
data
target
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.)
Pending
Application number
CN202210457315.3A
Other languages
English (en)
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.)
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology 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 Industrial and Commercial Bank of China Ltd ICBC, ICBC Technology Co Ltd filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210457315.3A priority Critical patent/CN114840718A/zh
Publication of CN114840718A publication Critical patent/CN114840718A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种链路数据处理方法,可以应用于金融领域。该方法应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:响应于链路报文转换指令,确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。本公开还提供了一种链路数量处理装置、设备、存储介质和程序产品。

Description

链路数据处理方法、装置、设备、存储介质和程序产品
技术领域
本公开涉及计算机技术领域,具体涉及分布式技术领域,更具体地涉及一种链路数据处理方法、装置、设备、存储介质和程序产品。
背景技术
随着分布式技术的不断发展,对分布式架构下运维的要求也越来越高,企业通常在不同分布式体系服务接入APMS(Application Performance Management&MonitoringSystem,APMS)系统,用于支撑该企业分布式体系应用级别的监控和告警。当企业需要引入新的独立的分布式体系时,在分布式运维方面,两个独立的分布式体系,当用户发起一条跨系统的服务调用请求,在两个分布式系统产生的链路标识格式规范不一致,链路数据格式也有所差别,无法对接完整的端到端链路,无法实现一体化的链路监控。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
鉴于上述问题,本公开提供了一种链路数据处理方法、装置、设备、存储介质和程序产品。
根据本公开的第一个方面,提供了一种链路数据处理方法,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:响应于链路报文转换指令,确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;
根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;以及
当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。
根据本公开的实施例,当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据包括:
根据第二分布式系统链路标识获取层级三元组数据,其中,所述层级三元组数据包括当前节点标识、节点层级和父节点标识;
调用预设接口将所述层级三元组数据进行转换,以生成链路三元组数据,所述链路三元组数据包括当前跨度标识、父跨度标识和第一分布式系统链路标识。
根据本公开的实施例,所述调用预设接口将所述层级三元组数据进行转换,以生成链路三元组数据包括:
遍历所有层级三元组数据中的当前节点标识,以生成与所述当前节点标识对应的当前跨度标识;
根据所述当前节点标识、所述节点层级和所述父节点标识确定与所述当前跨度标识对应的父跨度标识;以及
根据所述当前跨度标识、所述父跨度标识和第一分布式系统链路标识生成链路三元组数据。
根据本公开的实施例,所述链路标识映射信息用于表征源系统链路标识与目标系统链路标识的映射关系,所述根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识包括:
当确定所述源系统标识为第二分布式系统时,确定目标系统标识为第一分布式系统;
根据第二分布式系统链路标识和所述映射关系确定第一分布式系统链路标识。
根据本公开的实施例,所述根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识还包括:
当确定所述源系统标识为第一分布式系统时,确定目标系统标识为第二分布式系统;
根据第一分布式系统链路标识和所述映射关系确定第二分布式系统链路标识。
根据本公开的实施例,还包括:
当确定所述目标系统标识为第二分布式系统时,确定第一分布式系统链路数据为目标链路数据。
本公开的第二方面提供了一种链路数据处理装置,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:
第一确定模块,用于响应于链路报文转换指令,确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;
第二确定模块,用于根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;
生成模块,用于当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。
根据本公开的实施例,还包括:
第三确定模块,用于当确定所述目标系统标识为第二分布式系统时,确定第一分布式系统链路数据为目标链路数据。
根据本公开的实施例,所述生成模块包括:
获取子模块,用于根据第二分布式系统链路标识获取层级三元组数据,其中,所述层级三元组数据包括当前节点标识、节点层级和父节点标识;
生成子模块,用于调用预设接口将所述层级三元组数据进行转换,以生成链路三元组数据,所述链路三元组数据包括当前跨度标识、父跨度标识和第一分布式系统链路标识。
根据本公开的实施例,所述生成子模块包括:
遍历单元,用于遍历所有层级三元组数据中的当前节点标识,以生成与所述当前节点标识对应的当前跨度标识;
确定单元,用于根据所述当前节点标识、所述节点层级和所述父节点标识确定与所述当前跨度标识对应的父跨度标识;
生成单元,用于根据所述当前跨度标识、所述父跨度标识和第一分布式系统链路标识生成链路三元组数据。
根据本公开的实施例,第二确定模块包括:
第一确定子模块,用于当确定所述源系统标识为第二分布式系统时,确定目标系统标识为第一分布式系统;
第二确定子模块,用于根据第二分布式系统链路标识和所述映射关系确定第一分布式系统链路标识。
根据本公开的实施例,第二确定模块还包括:
第三确定子模块,用于当确定所述源系统标识为第一分布式系统时,确定目标系统标识为第二分布式系统;
第四确定子模块,用于根据第一分布式系统链路标识和所述映射关系确定第二分布式系统链路标识。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述链路数据处理方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述链路数据处理方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述链路数据处理方法。
通过本公开实施例的链路数据处理方法,通过确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据,解决两分布式中对链路标识唯一性要求不一致的问题,实现独立分布式系统间的链路标识的统一,进而有利于在多分布式系统间进行链路查询。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了跨系统服务调用的链路监控过程的示意图;
图2示意性示出了根据本公开实施例的链路数据处理方法、装置、设备、存储介质和程序产品的应用场景图;
图3示意性示出了根据本公开实施例的链路数据处理方法的流程图;
图4a示意性示出了根据本公开实施例的目标链路数据的生成方法的流程图之一;
图4b示意性示出了根据本公开实施例的层级三元组的结构示意图;
图4c示意性示出了根据本公开实施例的目标链路数据的生成方法的流程图之二;
图5a示意性示出了根据本公开实施例的目标链路标识的确定方法的流程图之一;
图5b示意性示出了根据本公开实施例的目标链路标识的确定方法的流程图之二;
图6示意性示出了根据本公开实施例的链路数据处理装置的结构框图;以及
图7示意性示出了根据本公开实施例的适于实现链路数据处理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
首先对本公开实施例出现的术语进行解释:
第一分布式系统:一套独立的分布式系统,包括但不限于分布式服务、分布式消息、分布式事务、软负载、分布式数据库和分布式缓存。
第二分布式系统:第三方的分布式系统,类似于第一分布式系统,同样为独立的分布式系统;
第一分布式系统链路标识:为第一分布式系统的链路标识,由zipkin组件生成,依赖于具体的机器地址以及时间戳等信息,具有全局唯一性。
第二分布式系统链路标识:为第二分布式系统的链路标识,通常使用事务交易Id作为第二分布式系统链路标识。
HMP:Holographic Monitoring Platform,全息监控,为第一分布式系统的运维态组件,能够用于监控第一分布式系统中服务的调用链路数据;
APMS:Application Performance Management&Monitoring System,分布式链路追踪,为第二分布式系统的运维态组件,能够用于监控第二分布式系统中服务的调用链路数据。
Opentracing:一种分布式链路追踪的规范和行业标准,它由完整的API规范、实现该规范的框架、库以及项目文档组成;
Trace:链路,类似于树结构的Span集合,表示一条链路,存在唯一的Trace Id;
Span:跨度,基本工作单元,一次链路调用创建一个span,span中还有描述信息、时间戳等,通俗的理解一个span就是一次请求信息;
Trace Id:一条链路的唯一全局Id;
Span Id:标识跨度的id,一条链路中每个跨度都有唯一的span Id;
为了更好的理解本公开实施例的技术方案,首先对现有技术中链路监控过程作简要介绍,图1示意性示出了跨系统服务调用的链路监控过程的示意图,如图1所示,服务节点A、服务节点B和Adapter适配节点接入第一分布式系统,服务节点C和服务节点D接入第二分布式系统,假设存在一服务调用请求,由服务节点A经服务节点B、Adapter适配节点、服务节点C调用服务节点D。起始节点A创建一个新的traceId:a01,在A-B-Adapter的调用链路中链路标识统一为a01,但是在第二分布式系统中,由于两分布式系统对traceId的格式规范不一致。第一分布式系统的traceId由zipkin组件生成,包括具体的机器地址信息以及时间戳等信息,具有全局唯一性,而第二分布式系统中的traceId只需满足全局唯一,任一字符串、交易号等等都能作为traceId,一般来说,第二分布式系统的traceId使用transactionId(事务交易id,由特定组件生成)作为链路id。因为transactionId本身具有唯一性,适合标识APMS系统的链路。作为两个分布式系统链路Id的区分,假定第一分布式系统链路标识为traceId,而第二分布式系统链路标识为transactionId,后续不再赘述。由此可推理出,服务A、B和Adapter节点产生的traceId,可以被接入APMS系统的服务C和D接受并作为链路的traceId,反过来则不适用。在进行链路报文转换时,由于两系统中的链路标识不一致,两系统的链路标识无法互通。
基于上述技术问题,本公开的实施例提供了一种链路数据处理方法,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:
响应于链路报文转换指令,确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。
图2示意性示出了根据本公开实施例的链路数据处理方法、装置、设备、存储介质和程序产品的应用场景图。
如图2所示,根据该实施例的应用场景100可以包括链路数据处理的应用场景。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所发起的服务请求提供支持的报文转换服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将生成的服务调用链路数据进行处理。
需要说明的是,本公开实施例所提供的链路数据处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的链路数据处理装置一般可以设置于服务器105中。本公开实施例所提供的链路数据处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的链路数据处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
需要说明的是,本公开确定的方法和装置可用于金融领域在分布式运维领域的应用,也可用于除金融领域之外的任意领域,本公开确定的链路数据处理方法和装置的应用领域不做限定。
以下将基于图2描述的场景,通过图3~图6对公开实施例的链路数据处理方法进行详细描述。
图3示意性示出了根据本公开实施例的链路数据处理方法的流程图。如图3所示,该实施例的链路数据处理方法包括操作S210~操作S230。
在操作S210,响应于链路报文转换指令,确定源系统信息和链路标识映射信息。
根据本公开实施例,所述源系统信息包括源系统标识和源系统链路标识。
一个示例中,源系统为待转换报文所属的系统,可以是第一分式系统或第二分布式系统,相应的,目标系统为转换后报文所属的系统,当源系统为第一分布式系统时,目标系统为第二分布式系统,当源系统为第二分布式系统时,目标系统为第一分布式系统。无论服务调用方向为服务节点A调用服务节点D还是服务节点D调用服务节点A,两分布式系统对同一条服务调用请求产生两种类型的链路报文,同时产生两种类型的链路标识,由前述可知,服务A、B和Adapter节点产生的traceId,可以被接入APMS系统的服务C和D接受并作为链路的traceId,服务节点C和D产生的transactionId无法直接作为第一分布式系统的链路标识。因此在进行报文转换之前需要对链路标识进行转换。在本公开实施例中,在接收到链路报文转换指令之后,从消息中间件中获取链路标识映射信息,该链路标识映射信息是由Adapter生成并发送至对应的消息中间件中。
在操作S220,根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识。
一个示例中,链路标识映射信息表征源系统链路标识与目标系统链路标识的映射关系。当服务调用经Adapter节点时,Adapter会收集信息构建traceMapping,即链路映射结构信息。Adapter节点实际上是由两个类型的节点组成,一个是InboundAdapter(第二分布式系统调用第一分布式系统),另外一个是OutboundAdapter(第一分布式系统调用第二分布式系统)。当第一分布式系统调用第二分布式系统时,第一分布式系统链路标识即可作为第二分布式系统链路标识;当第二分布式系统调用第一分布式系统时,InboundAdapte节点根据第二分布式系统链路标识生成新的链路标识作为第一分布式系统链路标识,根据traceMapping能够确定链路标识映射信息,进而根据源系统标识和原系统链路标识确定目标系统标识和目标系统链路标识,具体过程可参见图5所示的操作S221~操作S222,在此不再赘述。
在操作S230,当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据。
根据本公开实施例,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。
根据本公开实施例,当确定所述目标系统标识为第二分布式系统时,确定第一分布式系统链路数据为目标链路数据。
一个示例中,由于第一分布式系统与第二分布式系统的链路报文格式、结构、字段等等不一致,构成链路报文的链路数据格式也不同。为了实现完整链路的显示,需对同一链路中不同类型的链路报文进行互相转换,例如APMS链路报文转换成HMP链路报文,HMP链路报文转换成APMS链路报文,使得第一分布式系统和第二分布式系统的管理页面均能显示完整的链路报文。第一报文链路数据为链路三元组[traceId,id,parentId],第二报文链路数据为层级三元组[level,nid,pid],当目标系统标识为第一分布式系统时,需要调用接口对第二分布式系统链路数据进行处理,即将层级三元组映射到链路三元组。具体处理过程可参见图4a和图4b所示的操作S231~操作S232。当目标系统标识为第二分布式系统时,无需对链路数据进行上述处理,此时第二报文链路数据即为目标链路数据,直接执行报文转换逻辑即可。
通过本公开实施例的链路数据处理方法,通过确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据,解决两分布式中对链路标识唯一性要求不一致的问题,实现独立分布式系统间的链路标识的统一,进而有利于在多分布式系统间进行链路查询。
图4a示意性示出了根据本公开实施例的目标链路数据的生成方法的流程图之一,图4b示意性示出了根据本公开实施例的层级三元组的结构示意图,图4c示意性示出了根据本公开实施例的目标链路数据的生成方法的流程图之二。如图4a所示,操作S230包括操作S231~操作S232。
在操作S231,根据第二分布式系统链路标识获取层级三元组数据。
根据本公开实施例,其中,所述层级三元组数据包括当前节点标识、节点层级和父节点标识。
首先结合图4b对层级三元组进行介绍,第二分布式系统(APMS系统)的链路报文是基于节点级别的,节点报文只有一个入口方法且内部私有方法调用是通过层级三元组[nid,pid,level]来描述。
如图4b所示,APM报文A是节点报文,报文B也是一个独立的节点报文。其内部的私有方法调用,由[nid,pid,level]组成。/test为第一层级,level为1;callDemoServiceA、/test4、/test8为第二层级,level为2;/test45、/test47为第三层级,level为3。调用方法的nid为被调用方法的pid,例如/test的nid为1,被调用方法callDemoServiceA、/test4、/test8的pid则为1。调用方法/test4的nid为3,被调用方法/test45、/test47的pid为3。因此,层级三元组的节点级别的nid唯一,由数字从1开始标识;方法层级level从1开始,每深入一层方法调用,level加1;调用方法的nid为被调用方法的pid。根据第二分布式系统链路标识在数据库中查找获取层级三元组数据,再将层级三元组转换到链路三元组中。
在操作S232,调用预设接口将所述层级三元组数据进行转换,以生成链路三元组数据。
根据本公开实施例,所述链路三元组数据包括当前跨度标识、父跨度标识和第一分布式系统链路标识。
如图4c所示,具体转换过程包括操作S2321~操作S2323。
在操作S2321,遍历所有层级三元组数据中的当前节点标识,以生成与所述当前节点标识对应的当前跨度标识。
在操作S2322,根据所述当前节点标识、所述节点层级和所述父节点标识确定与所述当前跨度标识对应的父跨度标识。
在操作S2323,根据所述当前跨度标识、所述父跨度标识和第一分布式系统链路标识生成链路三元组数据。
一个示例中,层级三元组[nid,pid,level]转换到链路三元组[id,parentId,traceId]的基本思路是通过递归遍历的方式在ApmsMessage和ApmsMethod之间搭建层级关系,并且映射到对应的traceId、id和parentId。由于Id和parentId是不存在的,因此需要通过工具生成,具体的通过调用SpanIdCreator接口实现。ApmsMessage和ApmsMethod是商业版APMS报文json反序列化之后的对象组织形式。最外层是ApmsMessage对象,maps是一个数组,里面的每一个元素都会生成ApmsMethod。每一个ApmsMethod都会有层级三元组[nid,pid,level]。
通过遍历maps每一个元素的方式以及同步构建spanIdMapping结构(采用类似倒排索引的思想)来实现,具体的,遍历map数组,获取所有当前节点标识;调用接口函数将层级三元组中的当前节点标识生成当前跨度标识,并根据层级三元组中的父节点标识和当前节点标识以及节点层级确定链路调用关系,即父节点标识与当前节点标识的对应映射关系,并根据该映射关系进一步确定转新生成的当前跨度标识与父跨度标识的映射关系,进而结合第一分布式系统链路标识生成链路三元组。
图5a示意性示出了根据本公开实施例的目标链路标识的确定方法的流程图之一,图5b示意性示出了根据本公开实施例的目标链路标识的确定方法的流程图之二。
如图5a和图5b所示,操作S220有两种可行的实施方式。
在一种可行的实施方式,包括操作S221~操作S222。
在操作S221,当确定所述源系统标识为第二分布式系统时,确定目标系统标识为第一分布式系统。
在操作S222,根据第二分布式系统链路标识和所述映射关系确定第一分布式系统链路标识。
根据本公开实施例,所述链路标识映射信息用于表征源系统链路标识与目标系统链路标识的映射关系。
一个示例中,当确定源系统标识为第二分布式系统时,表征目标系统标识为第一分布式系统,此时进行APMS报文到HMP报文的转换,根据链路标识映射信息确定链路映射关系,进而确定第一分布式系统链路标识。这里有两种情况,1、当服务调用方向为第一分布式系统调用第二分布式系统时,此时第一分布式链路标识与第二分布式链路标识相同,例如第二分布式链路标识为a01,第一分布式链路标识也为a01。2、当服务调用方向为第二分布式系统调用第一分布式系统时,此时映射关系为traceId:c01,transactionId:b01,即第二分布式系统链路标识为b01,确定第一分布式系统链路标识为c01。
在另一种可行的实施方式,包括操作S223~操作S224。
在操作S223,当确定所述源系统标识为第一分布式系统时,确定目标系统标识为第二分布式系统。
在操作S224,根据第一分布式系统链路标识和所述映射关系确定第二分布式系统链路标识。
一个示例中,当确定源系统标识为第一分布式系统时,确定目标系统标识为第二分布式系统,即HMP报文向APMS报文转换。这里根据服务调用方向同样存在两种情况。1、当服务调用方向为第一分布式系统调用第二分布式系统时,此时第一分布式链路标识与第二分布式链路标识相同,例如第一分布式链路标识为a01,则第二分布式链路标识也为a01。2、当服务调用方向为第二分布式系统调用第一分布式系统时,此时映射关系为traceId:c01,transactionId:b01,即第一分布式系统链路标识为c01,确定第二分布式系统链路标识为b01。
基于上述链路数据处理方法,本公开还提供了一种链路数据处理装置。以下将结合图6对该装置进行详细描述。
图6示意性示出了根据本公开实施例的链路数据处理装置的结构框图。
如图6所示,该实施例的链路数据处理装置800应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括第一确定模块810、第二确定模块830和生成模块830。
第一确定模块810用于响应于链路报文转换指令,确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识。在一实施例中,第一确定模块810可以用于执行前文描述的操作S210,在此不再赘述。
第二确定模块820用于根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识。在一实施例中,第二确定模块820可以用于执行前文描述的操作S220,在此不再赘述。
生成模块830用于当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。在一实施例中,生成模块830可以用于执行前文描述的操作S230,在此不再赘述。
根据本公开的实施例,还包括:
第三确定模块840,用于当确定所述目标系统标识为第二分布式系统时,确定第一分布式系统链路数据为目标链路数据。在一实施例中,第三确定模块840可以用于执行前文描述的操作S230,在此不再赘述。
根据本公开的实施例,生成模块830包括获取子模块831和生成子模块832。
获取子模块831,用于根据第二分布式系统链路标识获取层级三元组数据,其中,所述层级三元组数据包括当前节点标识、节点层级和父节点标识。在一实施例中,获取子模块831可以用于执行前文描述的操作S231,在此不再赘述。
生成子模块832,用于调用预设接口将所述层级三元组数据进行转换,以生成链路三元组数据,所述链路三元组数据包括当前跨度标识、父跨度标识和第一分布式系统链路标识。在一实施例中,生成子模块832可以用于执行前文描述的操作S232,在此不再赘述。
根据本公开的实施例,生成子模块832包括遍历单元8321、确定单元8322和生成单元8323。
遍历单元8321,用于遍历所有层级三元组数据中的当前节点标识,以生成与所述当前节点标识对应的当前跨度标识。在一实施例中,遍历单元8321可以用于执行前文描述的操作S2321,在此不再赘述。
确定单元8322,用于根据所述当前节点标识、所述节点层级和所述父节点标识确定与所述当前跨度标识对应的父跨度标识。在一实施例中,确定单元8232可以用于执行前文描述的操作S2322,在此不再赘述。
生成单元8323,用于根据所述当前跨度标识、所述父跨度标识和第一分布式系统链路标识生成链路三元组数据。在一实施例中,生成单元8323可以用于执行前文描述的操作S2323,在此不再赘述。
根据本公开的实施例,第二确定模块820包括第一确定子模块821、第二确定子模块822、第三确定子模块823和第四生成子模块824。
第一确定子模块821,用于当确定所述源系统标识为第二分布式系统时,确定目标系统标识为第一分布式系统。在一实施例中,第一确定子模块821可以用于执行前文描述的操作S221,在此不再赘述。
第二确定子模块822,用于根据第二分布式系统链路标识和所述映射关系确定第一分布式系统链路标识。在一实施例中,第二确定子模块822可以用于执行前文描述的操作S222,在此不再赘述。
第三确定子模块823,用于当确定所述源系统标识为第一分布式系统时,确定目标系统标识为第二分布式系统。在一实施例中,第三确定子模块823可以用于执行前文描述的操作S223,在此不再赘述。
第四确定子模块824,用于根据第一分布式系统链路标识和所述映射关系确定第二分布式系统链路标识。在一实施例中,第四确定子模块824可以用于执行前文描述的操作S224,在此不再赘述。
根据本公开的实施例,第一确定模块810、第二确定模块830和生成模块830中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一确定模块810、第二确定模块830和生成模块830中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一确定模块810、第二确定模块830和生成模块830中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的适于实现链路数据处理方法的电子设备的方框图。
如图7所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的链路数据处理方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。电应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种链路数据处理方法,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,其特征在于,包括:
响应于链路报文转换指令,确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;
根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;以及
当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。
2.根据权利要求1所述的方法,其特征在于,当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据包括:
根据第二分布式系统链路标识获取层级三元组数据,其中,所述层级三元组数据包括当前节点标识、节点层级和父节点标识;
调用预设接口将所述层级三元组数据进行转换,以生成链路三元组数据,所述链路三元组数据包括当前跨度标识、父跨度标识和第一分布式系统链路标识。
3.根据权利要求2所述的方法,其特征在于,所述调用预设接口将所述层级三元组数据进行转换,以生成链路三元组数据包括:
遍历所有层级三元组数据中的当前节点标识,以生成与所述当前节点标识对应的当前跨度标识;
根据所述当前节点标识、所述节点层级和所述父节点标识确定与所述当前跨度标识对应的父跨度标识;以及
根据所述当前跨度标识、所述父跨度标识和第一分布式系统链路标识生成链路三元组数据。
4.根据权利要求3所述的方法,其特征在于,所述链路标识映射信息用于表征源系统链路标识与目标系统链路标识的映射关系,所述根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识包括:
当确定所述源系统标识为第二分布式系统时,确定目标系统标识为第一分布式系统;
根据第二分布式系统链路标识和所述映射关系确定第一分布式系统链路标识。
5.根据权利要求3所述的方法,其特征在于,所述根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识还包括:
当确定所述源系统标识为第一分布式系统时,确定目标系统标识为第二分布式系统;
根据第一分布式系统链路标识和所述映射关系确定第二分布式系统链路标识。
6.根据权利要求1至5任一项所述的方法,其特征在于,还包括:
当确定所述目标系统标识为第二分布式系统时,确定第一分布式系统链路数据为目标链路数据。
7.一种链路数据处理装置,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:
第一确定模块,用于响应于链路报文转换指令,确定源系统信息和链路标识映射信息,其中,所述源系统信息包括源系统标识和源系统链路标识;
第二确定模块,用于根据所述源系统标识、所述源系统链路标识和所述链路标识映射信息确定目标系统标识和目标系统链路标识;
生成模块,用于当确定所述目标系统标识为第一分布式系统时,调用预设接口对第二分布式系统链路数据进行处理,以生成目标链路数据,所述第二分布式系统链路数据为层级三元组数据,所述目标链路数据为链路三元组数据。
8.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~6中任一项所述的方法。
CN202210457315.3A 2022-04-27 2022-04-27 链路数据处理方法、装置、设备、存储介质和程序产品 Pending CN114840718A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210457315.3A CN114840718A (zh) 2022-04-27 2022-04-27 链路数据处理方法、装置、设备、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210457315.3A CN114840718A (zh) 2022-04-27 2022-04-27 链路数据处理方法、装置、设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN114840718A true CN114840718A (zh) 2022-08-02

Family

ID=82567043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210457315.3A Pending CN114840718A (zh) 2022-04-27 2022-04-27 链路数据处理方法、装置、设备、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN114840718A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028469A (zh) * 2023-01-04 2023-04-28 北京夏石科技有限责任公司 数据安全链路跟踪方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028469A (zh) * 2023-01-04 2023-04-28 北京夏石科技有限责任公司 数据安全链路跟踪方法及装置

Similar Documents

Publication Publication Date Title
CN113987074A (zh) 分布式服务全链路监控方法、装置、电子设备及存储介质
CN114172966B (zh) 单元化架构下的服务调用方法、服务处理方法及装置
CN114490268A (zh) 全链路监控方法、装置、设备、存储介质和程序产品
CN113190625A (zh) 请求处理方法、装置、电子设备、介质和程序产品
CN105630684A (zh) 软件开发工具包识别方法和装置
US10182104B1 (en) Automatic propagation of resource attributes in a provider network according to propagation criteria
CN115587575A (zh) 数据表创建方法、目标数据查询方法、装置及设备
CN115357761A (zh) 链路追踪方法、装置、电子设备及存储介质
CN114840718A (zh) 链路数据处理方法、装置、设备、存储介质和程序产品
CN113515271B (zh) 服务代码生成方法、装置、电子设备及可读存储介质
CN110764769B (zh) 处理用户请求的方法和装置
CN110489392A (zh) 多租户间的数据访问方法、装置、系统、存储介质及设备
CN114237765B (zh) 功能组件处理方法、装置、电子设备和介质
CN114780361A (zh) 日志生成方法、装置、计算机系统及可读存储介质
CN114677114A (zh) 基于图形拖拽的审批流程生成方法及装置
CN114844957B (zh) 链路报文转换方法、装置、设备、存储介质和程序产品
CN113741888A (zh) 一种业务处理方法和装置
US10516767B2 (en) Unifying realtime and static data for presenting over a web service
CN113515326B (zh) 数据转换方法、装置、电子设备以及存储介质
CN116401319B (zh) 数据同步方法及装置、电子设备和计算机可读存储介质
CN114363172B (zh) 用于容器组的解耦管理方法、装置、设备、介质
CN114202046B (zh) 基于sap系统生成二维码的方法、装置、设备及介质
CN115866064A (zh) Redis集群的路由方法、装置、设备、存储介质和程序产品
CN118069645A (zh) 业务数据变更检测方法、装置、设备、介质和程序产品
CN114885030A (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