CN114844957A - 链路报文转换方法、装置、设备、存储介质和程序产品 - Google Patents
链路报文转换方法、装置、设备、存储介质和程序产品 Download PDFInfo
- Publication number
- CN114844957A CN114844957A CN202210457314.9A CN202210457314A CN114844957A CN 114844957 A CN114844957 A CN 114844957A CN 202210457314 A CN202210457314 A CN 202210457314A CN 114844957 A CN114844957 A CN 114844957A
- Authority
- CN
- China
- Prior art keywords
- message
- link
- span
- node
- distributed system
- 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
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000013507 mapping Methods 0.000 claims abstract description 87
- 238000004590 computer program Methods 0.000 claims description 20
- 125000002015 acyclic group Chemical group 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000015654 memory Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100124526 Yersinia pestis hmp gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 101150083365 hmp gene Proteins 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种链路报文转换方法,可以应用于金融领域。该方法应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:响应于报文转换指令,获取链路映射结构信息;根据所述链路映射结构信息确定链路上下文信息;根据所述链路上下文信息确定有向无环图;以及根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文。本公开还提供了一种链路报文转换装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及计算机技术领域,具体涉及分布式技术领域,更具体地涉及一种链路报文转换方法、装置、设备、存储介质和程序产品。
背景技术
随着分布式技术的不断发展,对分布式架构下运维的要求也越来越高,企业通常在不同分布式体系服务接入APMS(Application Performance Management&MonitoringSystem,APMS)系统,用于支撑该企业分布式体系应用级别的监控和告警。当企业需要引入新的独立的分布式体系时,在分布式运维方面,两个独立的分布式体系,由于链路报文完全不同(结构不同、粒度大小不同、字段含义不同),无法对接完整的端到端链路,在进行服务调用时无法实现一体化的链路监控。
现有技术中,在进行报文转换时通常设置一个适配节点使用通过过程式的方法将两独立分布式体系的报文进行强行转换,这种方法导致算法复杂且后续可维护性差,进而影响系统的稳定性。这样的适配节点是无法支撑两个分布式体系的运维态的对接并提供稳定可靠长期运行的。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
鉴于上述问题,本公开提供了一种链路报文转换方法、装置、设备、存储介质和程序产品。
根据本公开的第一个方面,提供了一种链路报文转换方法,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:响应于报文转换指令,获取链路映射结构信息;
根据所述链路映射结构信息确定链路上下文信息;
根据所述链路上下文信息确定有向无环图;以及
根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,
其中,所述链路映射结构信息包括第一分布式系统链路标识、第二分布式系统链路标识和调用方向,所述调用方向包括所述第一分布式系统调用所述第二分布式系统和所述第二分布式系统调用所述第一分布式系统。
根据本公开的实施例,所述根据所述链路映射结构信息确定链路上下文信息包括:
确定报文转换方向,所述报文转换方向包括第一报文转换成第二报文和第二报文转换成第一报文;
根据所述报文转换方向确定跨度列表数据;以及
根据所述跨度列表数据和所述链路映射结构信息确定链路上下文信息。
根据本公开的实施例,所述根据所述跨度列表数据和所述链路映射结构信息确定链路上下文信息包括:
遍历所述跨度列表数据中的跨度信息,以确定当前跨度节点与父跨度节点的映射关系列表和头跨度节点列表;以及
根据所述当前跨度节点与父跨度节点的映射关系列表、所述头跨度节点列表和所述链路映射结构信息确定链路上下文信息。
根据本公开的实施例,所述根据所述链路上下文信息确定有向无环图包括:
根据所述当前跨度节点与父跨度节点的映射关系列表和所述头跨度节点列表确定各头跨度节点的子跨度节点;
根据所述各头跨度节点的子跨度节点依次遍历所述当前跨度节点与父跨度节点的映射关系列表生成完整有向无环图。
根据本公开的实施例,所述根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文包括:
当确定所述报文转换方向为第一报文转换成第二报文时,基于节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图;
根据第一预设报文字段映射表和所述多个目标有向无环图进行转换赋值操作,以生成第二报文;
根据所述调用方向确定第二报文头跨度节点的父跨度节点。
根据本公开的实施例,所述基于节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图包括:
根据所述跨度信息确定节点界限;以及
基于所述节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图。
根据本公开的实施例,所述根据所述跨度信息确定节点界限包括:
获取所述跨度信息的标识信息,所述标识信息包括调用应用名称、IP地址、服务名称和区域信息;以及
根据所述标识信息确定节点界限。
根据本公开的实施例,所述根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文还包括:
当确定所述报文转换方向为第二报文转换成第一报文时,根据第二预设报文字段映射表和所述有向无环图进行转换赋值操作,以生成第一报文;
根据所述调用方向确定第一报文头跨度节点的父跨度节点。
根据本公开的实施例,所述第一报文为基于分布式链路追踪规范生成的接口级报文,所述第二报文为非分布式链路追踪规范的节点级报文。
本公开的第二方面提供了一种链路报文转换装置,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:获取模块,用于响应于报文转换命令,获取链路映射结构信息;
第一确定模块,用于根据所述链路映射结构信息确定链路上下文信息;
第二确定模块,用于根据所述链路上下文信息确定有向无环图;
报文转换模块,用于根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,
其中,所述链路映射结构信息包括第一分布式系统链路标识、第二分布式系统链路标识和调用方向,所述调用方向包括所述第一分布式系统调用所述第二分布式系统和所述第二分布式系统调用所述第一分布式系统。
根据本公开的实施例,第一确定模块包括:
第一确定子模块,用于确定报文转换方向,所述报文转换方向包括第一报文转换成第二报文和第二报文转换成第一报文;
第二确定子模块,用于根据所述报文转换方向确定跨度列表数据;
第三确定子模块,用于根据所述跨度列表数据和所述链路映射结构信息确定链路上下文信息。
根据本公开的实施例,第三确定子模块包括:
第一确定单元,用于遍历所述跨度列表数据中的跨度信息,以确定当前跨度节点与父跨度节点的映射关系列表和头跨度节点列表;
第二确定单元,用于根据所述当前跨度节点与父跨度节点的映射关系列表、所述头跨度节点列表和所述链路映射结构信息确定链路上下文信息。
根据本公开的实施例,第二确定模块包括:
第四确定子模块,用于根据所述当前跨度节点与父跨度节点的映射关系列表和所述头跨度节点列表确定各头跨度节点的子跨度节点;
第一生成子模块,用于根据所述各头跨度节点的子跨度节点依次遍历所述当前跨度节点与父跨度节点的映射关系列表生成完整有向无环图。
根据本公开的实施例,报文转换模块包括:
第二生成子模块,用于当确定所述报文转换方向为第一报文转换成第二报文时,基于节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图;
第一转换子模块,用于根据第一预设报文字段映射表和所述多个目标有向无环图进行转换赋值操作,以生成第二报文;
第五确定子模块,用于根据所述调用方向确定第二报文头跨度节点的父跨度节点。
根据本公开的实施例,第二生成子模块包括:
第三确定单元,用于根据所述跨度信息确定节点界限;
生成单元,用于基于所述节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图。
根据本公开的实施例,第三确定单元包括:
获取子单元,用于获取所述跨度信息的标识信息,所述标识信息包括调用应用名称、IP地址、服务名称和区域信息;
确定子单元,用于根据所述标识信息确定节点界限。
根据本公开的实施例,报文转换模块还包括:
第二转换子模块,用于当确定所述报文转换方向为第二报文转换成第一报文时,根据第二预设报文字段映射表和所述有向无环图进行转换赋值操作,以生成第一报文;
第六确定子模块,用于根据所述调用方向确定第一报文头跨度节点的父跨度节点。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述链路报文转换方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述链路报文转换方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述链路报文转换方法。
通过本公开实施例的链路报文转换方法,通过获取链路映射结构信息确定链路上下文信息,根据链路上下文信息生成有向无环图。根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,通过上述标准化算法转换逻辑,提升报文转换效率和可靠性,进而使得各独立分布式系统能够在各自的管理平台显示完整的链路报文信息。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了全息监控和分布式链路追踪的工作流程图;
图2示意性示出了根据本公开实施例的链路报文转换方法、装置、设备、存储介质和程序产品的应用场景图;
图3示意性示出了根据本公开实施例的链路报文转换方法的流程图;
图4示意性示出了根据本公开实施例的链路报文转换方法的系统架构图;
图5示意性示出了根据本公开实施例的链路上下文信息的生成方法的流程图;
图6示意性示出了根据本公开实施例的有向无环图的生成方法的流程图;
图7a示意性示出了根据本公开实施例的目标报文生成方法的流程图之一;
图7b示意性示出了根据本公开实施例的目标报文生成方法的流程图之二;
图8示意性示出了根据本公开实施例的链路报文转换装置的结构框图;以及
图9示意性示出了根据本公开实施例的适于实现链路报文转换方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
首先对本公开实施例出现的术语进行解释:
第一分布式系统:一套独立的分布式系统,包括但不限于分布式服务、分布式消息、分布式事务、软负载、分布式数据库和分布式缓存。
第二分布式系统:第三方的分布式系统,类似于第一分布式系统,同样为独立的分布式系统;
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;
DAG:Directed Acyclic Graph有向无环图;
APMS2HMP:一种报文转换节点,专门用来转换APMS的报文到HMP的报文;
HMP2APMS:一种报文转换节点,专门用来转换HMP的报文到APMS的报文。
Click house:一种基于列式的分布式数据库,大规模应用在互联网、金融、电信等关键基础设置当中;
Grafana:一种可视化展示平台;
HMP Portal:全息监控使用的一体化展示平台,嵌入了Grafana页面,支持链路数据展示和查询;
APMS Portal:第三方的APMS系统的一体化展示平台,支持链路数据展示和查询;
ElasticSearch:一种基于Lucene的搜索服务器,提供分布式多户用的全文检索能力。
全息监控是基于开源APMS系统Zipkin进行深度定制的产品,本身遵循opentracing规范,所有遵循opentracing规范的链路报文都是接口或者方法级别;而现有的商业APMS系统因各种原因,没有遵循opentracing规范,产生的链路报文也是节点级别的,即同一个节点里面产生的一次调用,跨一个公共接口或者方法同时跨多个私有方法,收集链路数据后只会产生一个报文。
本公开的实施例提供了一种链路报文转换方法,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:
响应于报文转换指令,获取链路映射结构信息;根据所述链路映射结构信息确定链路上下文信息;根据所述链路上下文信息确定有向无环图;以及根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,其中,所述链路映射结构信息包括第一分布式系统链路标识、第二分布式系统链路标识和调用方向,所述调用方向包括所述第一分布式系统调用所述第二分布式系统和所述第二分布式系统调用所述第一分布式系统。
图1示意性示出了全息监控和分布式链路追踪的工作流程图,如图1所示,全息监控的整体工作流程是通过应用侧的字节码注入或者拦截器的方式,收集用户的每个接口方法的span数据,并通过http方法发送到监控网关。监控网关是一个轻量级高性能的转发节点,对接http的短链接和kafka的长连接,支持限流,并把链路报文原封不动的转发到下游kafka消息中间件。Zipkin_es是一个服务节点,消费kafka的链路数据并持久化到elasticsearch数据库。Hmp Portal是一个门户,提供查询链路的功能。商业版APMS系统的工作流程跟全息监控类似,也是通过采集端sdk收集节点级别的报文数据,并发送到kafka。Clickhouse数据库提供了kafka引擎,会源源不断的消费来自kafka的数据并做持久化。APMS Portal和Grafana会查询clickhouse数据库,并展示链路。
A-B-adapter是运行态的第一分布式系统,而C和D假设是另外一个CAAS分布式体系,即第二分布式系统,中间通过反向代理(比如nginx等)进行转发。Adapter节点是关键的rpc请求转发和转换的节点,同时对于A和B来说,也是一个服务提供者,简化和透明化对CAAS分布式服务的调用。通过本公开的链路转换方法将基于opentracing的全息监控与非opentracing的APMS系统进行链路打通,在各自的管理平台展示完整的链路信息,也就是双向调用,例如A-B-Adapter-C-D和D-C-Adapter-B-A需要同时在全息监控和商业版的APMS同时展示,并且是正确的展示时间耗时、异常信息、Span的属性等所有链路分析所必要的上下文信息。
图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示意性示出了根据本公开实施例的链路报文转换方法的流程图。图4示意性示出了根据本公开实施例的链路报文转换方法的系统架构图。如图3所示,该实施例的链路报文转换方法包括操作S210~操作S240。如图4所示,该报文转换方法可以由报文转换节点执行,报文转换节例如可以是服务器集群,也可以是其他计算设备。本公开实施例提供的链路报文转换方法应用于多个独立分布式系统,例如第一分布式系统和第二分布式系统之间,其中第一分布式系统是基于分布式链路追踪规范标准开发的系统,其产生的报文即第一报文,是接口或者方法级的链路报文;而第二分布式系统并未遵循分布式链路追踪规定的标准。其产生的报文即第二报文,是节点级别的,即同一个节点里面产生的一次调用,跨一个公共接口或者方法同时跨多个私有方法,收集链路数据后只会产生一个报文。
在操作S210,响应于报文转换指令,获取链路映射结构信息。
根据本公开实施例,所述链路映射结构信息包括第一分布式系统链路标识、第二分布式系统链路标识和调用方向。
根据本公开实施例,所述调用方向包括所述第一分布式系统调用所述第二分布式系统和所述第二分布式系统调用所述第一分布式系统。
一个示例中,在第一分布式系统和第二分布式系统之间存在服务调用时,调用请求经adapter适配节点,生成链路映射结构信息,链路映射结构信息包括源系统标识、目标系统标识、源系统链路标识、目标系统链路标识和调用方向。根据链路映射结构信息能够确定报文转换时链路标识的映射关系,链路标识的映射关系是报文转换过程中所必需的信息,在一个分布式系统中,一次服务调用共用同一个全局唯一的链路标识,然而在跨系统调用时,导致同一服务调用链路的链路标识不同,因此需要链路标识映射关系对链路标识进行统一。当第一分布式系统调用第二分布式系统时,源系统为第一分布式系统,目标系统为第二分布式系统;当第二分布式系统调用第一分布式系统时,源系统为第二分布式系统,目标系统为第一分布式系统。在生成链路映射结构信息之后,自动触发报文转换任务,向报文转换节点发出报文转换指令。报文转换节点接收到报文转换指令后,通过消费消息中间件获取链路映射结构信息。
在操作S220,根据所述链路映射结构信息确定链路上下文信息。
一个示例中,链路上下文信息的生命周期起始于报文转换开始,终止于报文转换结束。链路上下文信息包括第一链路标识、第二链路标识和链路映射结构信息,还包括原始跨度列表、当前跨度节点与父跨度节点的映射关系以及头跨度节点等关键字段信息,这些关键字段信息是构建有向无环图所必需的信息。链路上下文信息具体的构建过程可参见图5所示的操作S221~操作S223。
在操作S230,根据所述链路上下文信息确定有向无环图。
一个示例中,考虑到分布式体系下的链路追踪,不管是基于接口的单边opentracing报文,还是基于方法的节点级非opentracing报文,它们最终都会形成一条完整的链路,即有向无环图(DAG),依次遍历操作S220得到的链路上下文信息中的头跨度节点信息,采用倒排索引的方式,通过父跨度节点确定对应的子跨度节点,进而确定该子跨度节点的子跨度节点,最终形成一条完整的链路,即有向无环图。具体过程可参见图6所示的操作S231和操作S232。
在操作S240,根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文。
一个示例中,在得到有向无环图之后,根据预设的报文字段映射表和该有向无环图对待转换报文进行报文转换,其中待转换报文可以是第一分布式系统的链路报文,也可以是第二分布式系统的链路报文,待转换报文类型不同,对应的报文转换逻辑不同,当待转换报文为第一分布式系统的链路报文时,由于第一分布式系统的链路是基于opentraceing的单边报文,是接口级别的,第二分布式系统的链路报文是基于节点级别的非opentraceing报文,在进行报文转换之前,需要对报文节点的界限进行划分,在划分节点界限后,根据预设的报文字段映射表对待转换报文进行转换赋值。具体过程可参见图7b所示的操作S311和操作S312。
通过本公开实施例的链路报文转换方法,通过获取链路映射结构信息确定链路上下文信息,根据链路上下文信息生成有向无环图。根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,通过上述标准化算法转换逻辑,提升报文转换效率和可靠性,进而使得各独立分布式系统能够在各自的管理平台显示完整的链路报文信息。
图5示意性示出了根据本公开实施例的链路上下文信息的生成方法的流程图。如图5所示,操作S220包括操作S221~操作S223。
在操作S221,确定报文转换方向。
根据本公开实施例,所述报文转换方向包括第一报文转换成第二报文和第二报文转换成第一报文。
根据本公开实施例,所述第一报文为基于分布式链路追踪规范生成的接口级报文,所述第二报文为非分布式链路追踪规范的节点级报文。
一个示例中,第一报文是一个json格式的数组,包含多个跨度(span)。每个span包含固有的字段,例如traceId链路标识id,spanId,parentId,kind,name,timestamp,duration,localEndpoin,remoteEndpoint,tags,其中spanId为跨度节点标识,parentId为当前跨度节点的父跨度节点标识,第一个链路的span则没有parentId。Kind表示当前报文是服务端报文还是客户端报文,name标识请求方法,timestamp标识当前时间戳,duration标识当前span的耗时,localEndpoint标识当前本地端点,remoteEndpoint标识远程端点,tags标识span的描述信息,常用的有app.name(应用名),cluster.name(集群名),dc(数据中心),region(区域),span.type(span的类型),resource.name(资源名)等。
第二报文也是一个json格式的数据,包含多个span。每个span代表一个节点级别的报文,报文外层有trace_id标识链路的唯一id。该报文包含的字段非常多,结构复杂。同时由于该span不遵循opentracing规范,有很多特有的字段。仅列出重点字段作为示例:sn(服务器名称),sport(服务器端口),t_name(线程名),t_id(线程id),resp_time(响应时间),uri(访问uri),resp_time(响应时间),service_type(服务类型),service_name(服务名),app_name(应用名),app_id(当前应用的id),app_id_from(上个应用节点的id),host_id(主机id),agent_id(采集端sdk的id),service_uri(请求uri),coll_time(耗时,采用unix时间戳)。
一个示例中,无论调用方向是第一分布式系统调用第二分布式系统,还是第二分布式系统调用分布式系统,如果要实现完整显示服务调用链路,均需要进行两个方向的报文转换,即第一报文转换成第二报文以及第二报文转换成第一报文,其中第一报文为基于opentracing规范的链路报文,第二报文为没有遵循opentracing规范的节点级的报文。当接收到报文转换指令进行两个方向的报文转换,报文转换方向不同,对应的转换逻辑算法有所差别。
在操作S222,根据所述报文转换方向确定跨度列表数据。
一个示例中,当报文转换方向为第一报文转换成第二报文时,根据第一链路标识在第一分布式系统中的数据库中确定第一报文的跨度列表数据;当报文转换方向为第二报文转换成第一报文时,根据第二链路标识在第二分布式系统中确定第二报文的跨度列表数据,为了避免过多的对分布式系统进行频繁的数据访问,本公开实施例设置一个分布式数据缓存数据库,将第二分布式系统的链路数据缓存至缓存数据库中。
在操作S223,根据所述跨度列表数据和所述链路映射结构信息确定链路上下文信息。
根据本公开实施例,遍历所述跨度列表数据中的跨度信息,以确定当前跨度节点与父跨度节点的映射关系列表和头跨度节点列表;根据所述当前跨度节点与父跨度节点的映射关系列表、所述头跨度节点列表和所述链路映射结构信息确定链路上下文信息。
一个示例中,首先收集跨度列表数据,遍历并判断每个跨度的父跨度节点是够包含在刚建立的跨度列表里面。如果没有,则设置为空,后续构建全局的DAG会产生独立的有向无环图。构建parentId与spanId的映射关系,构建HmpNode,HmpNode是一个链路节点的实体类,包含了链路三元组(traceId,id,parentId),同时封装了两个单边span。为每个HmpNode设置对应的spanId,以及创建头跨度节点列表。根据上述信息创建链路上下文信息。
图6示意性示出了根据本公开实施例的有向无环图的生成方法的流程图。如图6所示,操作S230包括操作S231~操作S232。
在操作S231,根据所述当前跨度节点与父跨度节点的映射关系列表和所述头跨度节点列表确定各头跨度节点的子跨度节点。
在操作S232,根据所述各头跨度节点的子跨度节点依次遍历所述当前跨度节点与父跨度节点的映射关系列表生成完整有向无环图。
在本公开实施例中,使用方法为processTraceTree㈡,采用倒排索引来构建hmpTrace。因为一条链路在搜集到同一个traceId的span报文列表之后,都会使用三元组[traceId,spanid,parentId]来串联链路,通过父跨度节点id确定对应子跨度节点的spanId的方式,即parentSpanIdMap结构。它的key是上一层及的spanId,value是一个TreeSet结构,里面存储着有序的下一级的spanId列表,在生成完整的全局有向无环图时,需要通过ComparableSpanId比较同级span的先后顺序,具体的,通过span的timestamp比较span的先后顺序,若timestamp相同,则使用spanId进行hash比较。进行链路树的递归调用,使用递归方式能够简化算法逻辑,一般来说,链路的层级不超过10个层级,在可接受的范围内,可以通过设置预设阈值对异常的超长链路进行判断,例如超过1000个span的链路,则需要提前进行判断,并打印异常日志。防止对整个算法的执行带来不稳定性和过长的执行耗时。这样的超长链路多半源于应用侧的远程循环调用所致,本身是不合理的,需要告知应用的相关方及时处理。
图7a示意性示出了根据本公开实施例的目标报文生成方法的流程图之一,图7b示意性示出了根据本公开实施例的目标报文生成方法的流程图之二。如图7a所示,该方法包括操作S310~操作S320。
在操作S310,当确定所述报文转换方向为第一报文转换成第二报文时,基于节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图。
在操作S320,根据第一预设报文字段映射表和所述多个目标有向无环图进行转换赋值操作,以生成第二报文。
根据本公开实施例,根据所述调用方向确定第二报文头跨度节点的父跨度节点。
根据本公开实施例,当确定所述报文转换方向为第二报文转换成第一报文时,根据第二预设报文字段映射表和所述有向无环图进行转换赋值操作,以生成第一报文。根据所述调用方向确定第一报文头跨度节点的父跨度节点。
如图7b所示,操作S310包括操作S311~操作S312。
在操作S311,根据所述跨度信息确定节点界限。
在操作S312,基于所述节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图。
根据本公开实施例,获取所述跨度信息的标识信息,所述标识信息包括调用应用名称、IP地址、服务名称和区域信息;根据所述标识信息确定节点界限。
一个示例中,首先介绍第一报文转换成第二报文的过程。根据预设节点界限划分规则对有向无环图进行拆分,包括:1、前后调用跨不同应用,属于跨节点。2、localEndpoint的ipv4地址不同,属于跨节点。3、localEndpoint的serviceName不同,属于跨节点。4、dc®ion不一致,跨节点调用。5、span.type=function,节点内调用。6、span.type=service,并且是dubbo调用,属于跨节点;7、其他:默认按照节点内调用。
根据跨度信息中的标识结合上述预设规则确定节点界限对有向无环图进行划分,如果符合节点界限拆分的条件,就进行具体的HmpTrace的拆分,生成多个目标有向无环图。
第一预设报文字段映射表为第一报文字段映射到第二报文字段的映射关系表,同样的,第二预设报文字段映射表为第二报文字段映射到第一报文字段的映射关系表。根据第一预设报文字段映射表和多个目标有向无环图进行递归遍历赋值操作,生成第二报文。在生成第二报文之后,为了将整个调用链路串联起来,需要根据调用方向确定第二报文的头跨度节点的父跨度节点。具体的,如果调用方向为第一分布式系统调用第二分布式系统,即A-B-adapter-C-D,使用的trace_id可以透传到对端的第二分布式系统,故可以不用考虑更新转换后的第二报文的头节点的span_id_from字段。在第二分布式系统门户的整个链路展示,上半部分是A(B(adapter)),下半部分是C(D)。
反过来,如果调用方向为第二分布式系统调用第一分布式系统,即D-C-adapter-B-A,在第二分布式系统门户的整个链路的展示,上半部分是D(C),下半部分是adapter(B(A))。因此将第二分布式系统中的原生apms报文的C节点的spanId作为adapter节点的span_id_from(parent span id)。
第二报文转换成第一报文的过程与上述实现过程的逻辑一致,去除了基于节点界限拆分有向无环图的过程,因为基于节点的第二报文转换成第一报文时,由于第一报文本身是基于接口级别的,私有方法也可被看成一个独立接口调用,作为独立的span。
基于上述链路报文转换方法,本公开还提供了一种链路报文转换装置。以下将结合图8对该装置进行详细描述。
图8示意性示出了根据本公开实施例的链路报文转换装置的结构框图。
如图8所示,该实施例的链路报文转换装置800应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括获取模块810、第一确定模块820、第二确定模块830和报文转换模块840。
获取模块810用于响应于报文转换命令,获取链路映射结构信息。在一实施例中,获取模块810可以用于执行前文描述的操作S210,在此不再赘述。
第一确定模块820用于用于根据所述链路映射结构信息确定链路上下文信息。在一实施例中,第一确定模块820可以用于执行前文描述的操作S220,在此不再赘述。
第二确定模块830用于根据所述链路上下文信息确定有向无环图。在一实施例中,第二确定模块830可以用于执行前文描述的操作S230,在此不再赘述。
报文转换模块840用于根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,其中,所述链路映射结构信息包括第一分布式系统链路标识、第二分布式系统链路标识和调用方向,所述调用方向包括所述第一分布式系统调用所述第二分布式系统和所述第二分布式系统调用所述第一分布式系统。在一实施例中,报文转换模块840可以用于执行前文描述的操作S240,在此不再赘述。
根据本公开的实施例,第一确定模块820包括第一确定子模块821、第二确定子模块822和第三确定子模块823。
第一确定子模块821,用于确定报文转换方向,所述报文转换方向包括第一报文转换成第二报文和第二报文转换成第一报文。在一实施例中,第一确定子模块821可以用于执行前文描述的操作S221,在此不再赘述。
第二确定子模块822,用于根据所述报文转换方向确定跨度列表数据。在一实施例中,第二确定子模块822可以用于执行前文描述的操作S222,在此不再赘述。
第三确定子模块823,用于根据所述跨度列表数据和所述链路映射结构信息确定链路上下文信息。在一实施例中,第三确定子模块823可以用于执行前文描述的操作S223,在此不再赘述。
根据本公开的实施例,第三确定子模块823包括第一确定单元8231和第二确定单元8232。
第一确定单元8231,用于遍历所述跨度列表数据中的跨度信息,以确定当前跨度节点与父跨度节点的映射关系列表和头跨度节点列表。在一实施例中,第一确定单元8231可以用于执行前文描述的操作S223,在此不再赘述。
第二确定单元8232,用于根据所述当前跨度节点与父跨度节点的映射关系列表、所述头跨度节点列表和所述链路映射结构信息确定链路上下文信息。在一实施例中,第二确定单元8232可以用于执行前文描述的操作S223,在此不再赘述。
根据本公开的实施例,第二确定模块830包括第四确定子模块831和第一生成子模块832。
第四确定子模块831,用于根据所述当前跨度节点与父跨度节点的映射关系列表和所述头跨度节点列表确定各头跨度节点的子跨度节点;在一实施例中,第四确定子模块831可以用于执行前文描述的操作S231,在此不再赘述。
第一生成子模块832,用于根据所述各头跨度节点的子跨度节点依次遍历所述当前跨度节点与父跨度节点的映射关系列表生成完整有向无环图。在一实施例中,第一生成子模块832可以用于执行前文描述的操作S232,在此不再赘述。
根据本公开的实施例,报文转换模块840包括第二生成子模块841、第一转换子模块842、第二转换子模块843、第五确定子模块844和第六确定子模块845。
第二生成子模块841,用于当确定所述报文转换方向为第一报文转换成第二报文时,基于节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图。在一实施例中,第二生成子模块841可以用于执行前文描述的操作S310,在此不再赘述。
第一转换子模块842,用于根据第一预设报文字段映射表和所述多个目标有向无环图进行转换赋值操作,以生成第二报文。在一实施例中,第一转换子模块842可以用于执行前文描述的操作S320,在此不再赘述。
第二转换子模块843,用于当确定所述报文转换方向为第二报文转换成第一报文时,根据第二预设报文字段映射表和所述有向无环图进行转换赋值操作,以生成第一报文。在一实施例中,第二转换子模块843可以用于执行前文描述的操作S320,在此不再赘述。
第五确定子模块844,用于根据所述调用方向确定第二报文头跨度节点的父跨度节点。在一实施例中,第五确定子模块844可以用于执行前文描述的操作S320,在此不再赘述。
第六确定子模块845,用于根据所述调用方向确定第二报文头跨度节点的父跨度节点。在一实施例中,第六确定子模块845可以用于执行前文描述的操作S320,在此不再赘述。
根据本公开的实施例,第二生成子模块841包括第三确定单元8411和生成单元8412。
第三确定单元8411,用于根据所述跨度信息确定节点界限。在一实施例中,第三确定单元8411可以用于执行前文描述的操作S311,在此不再赘述。
生成单元8412,用于基于所述节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图。在一实施例中,生成单元8412可以用于执行前文描述的操作S312,在此不再赘述。
根据本公开的实施例,第三确定单元8411包括获取子单元84111和确定子单元84112。
获取子单元84111,用于获取所述跨度信息的标识信息,所述标识信息包括调用应用名称、IP地址、服务名称和区域信息。在一实施例中,获取子单元84111可以用于执行前文描述的操作S312,在此不再赘述。
确定子单元84112,用于根据所述标识信息确定节点界限。在一实施例中,确定子单元84112可以用于执行前文描述的操作S312,在此不再赘述。
根据本公开的实施例,获取模块810、第一确定模块820、第二确定模块830和报文转换模块840中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块810、第一确定模块820、第二确定模块830和报文转换模块840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块810、第一确定模块820、第二确定模块830和报文转换模块840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现链路报文转换方法的电子设备的方框图。
如图9所示,根据本公开实施例的电子设备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 (13)
1.一种链路报文转换方法,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,其特征在于,包括:
响应于报文转换指令,获取链路映射结构信息;
根据所述链路映射结构信息确定链路上下文信息;
根据所述链路上下文信息确定有向无环图;以及
根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,
其中,所述链路映射结构信息包括第一分布式系统链路标识、第二分布式系统链路标识和调用方向,所述调用方向包括所述第一分布式系统调用所述第二分布式系统和所述第二分布式系统调用所述第一分布式系统。
2.根据权利要求1所述的方法,其特征在于,所述根据所述链路映射结构信息确定链路上下文信息包括:
确定报文转换方向,所述报文转换方向包括第一报文转换成第二报文和第二报文转换成第一报文;
根据所述报文转换方向确定跨度列表数据;以及
根据所述跨度列表数据和所述链路映射结构信息确定链路上下文信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述跨度列表数据和所述链路映射结构信息确定链路上下文信息包括:
遍历所述跨度列表数据中的跨度信息,以确定当前跨度节点与父跨度节点的映射关系列表和头跨度节点列表;以及
根据所述当前跨度节点与父跨度节点的映射关系列表、所述头跨度节点列表和所述链路映射结构信息确定链路上下文信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述链路上下文信息确定有向无环图包括:
根据所述当前跨度节点与父跨度节点的映射关系列表和所述头跨度节点列表确定各头跨度节点的子跨度节点;以及
根据所述各头跨度节点的子跨度节点依次遍历所述当前跨度节点与父跨度节点的映射关系列表生成完整有向无环图。
5.根据权利要求4所述的方法,其特征在于,所述根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文包括:
当确定所述报文转换方向为第一报文转换成第二报文时,基于节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图;
根据第一预设报文字段映射表和所述多个目标有向无环图进行转换赋值操作,以生成第二报文;以及
根据所述调用方向确定第二报文头跨度节点的父跨度节点。
6.根据权利要求5所述的方法,其特征在于,所述基于节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图包括:
根据所述跨度信息确定节点界限;以及
基于所述节点界限对所述有向无环图进行拆分,以生成多个目标有向无环图。
7.根据权利要求6所述的方法,其特征在于,所述根据所述跨度信息确定节点界限包括:
获取所述跨度信息的标识信息,所述标识信息包括调用应用名称、IP地址、服务名称和区域信息;以及
根据所述标识信息确定节点界限。
8.根据权利要求5所述的方法,其特征在于,所述根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文还包括:
当确定所述报文转换方向为第二报文转换成第一报文时,根据第二预设报文字段映射表和所述有向无环图进行转换赋值操作,以生成第一报文;以及
根据所述调用方向确定第一报文头跨度节点的父跨度节点。
9.根据权利要求2至8任一项所述的方法,其特征在于,所述第一报文为基于分布式链路追踪规范生成的接口级报文,所述第二报文为非分布式链路追踪规范的节点级报文。
10.一种链路报文转换装置,应用于分布式系统,所述分布式系统包括第一分布式系统和第二分布式系统,包括:
获取模块,用于响应于报文转换命令,获取链路映射结构信息;
第一确定模块,用于根据所述链路映射结构信息确定链路上下文信息;
第二确定模块,用于根据所述链路上下文信息确定有向无环图;
报文转换模块,用于根据所述有向无环图对待转换报文进行报文转换操作,以生成目标报文,
其中,所述链路映射结构信息包括第一分布式系统链路标识、第二分布式系统链路标识和调用方向,所述调用方向包括所述第一分布式系统调用所述第二分布式系统和所述第二分布式系统调用所述第一分布式系统。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~9中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210457314.9A CN114844957B (zh) | 2022-04-27 | 2022-04-27 | 链路报文转换方法、装置、设备、存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210457314.9A CN114844957B (zh) | 2022-04-27 | 2022-04-27 | 链路报文转换方法、装置、设备、存储介质和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114844957A true CN114844957A (zh) | 2022-08-02 |
CN114844957B CN114844957B (zh) | 2024-03-08 |
Family
ID=82568337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210457314.9A Active CN114844957B (zh) | 2022-04-27 | 2022-04-27 | 链路报文转换方法、装置、设备、存储介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114844957B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078151A1 (en) * | 2000-12-15 | 2002-06-20 | Wickam Bryce C. | System for communicating messages of various formats between diverse communication devices |
CN104636076A (zh) * | 2013-11-15 | 2015-05-20 | 中国电信股份有限公司 | 一种用于云存储的分布式块设备驱动方法和系统 |
CN105794156A (zh) * | 2013-11-27 | 2016-07-20 | 日本电气株式会社 | 通信系统、通信方法、网络信息组合装置以及网络信息组合程序 |
CN106921641A (zh) * | 2015-12-28 | 2017-07-04 | 华为技术有限公司 | 传输报文的方法和装置 |
CN107547666A (zh) * | 2016-06-24 | 2018-01-05 | 迈普通信技术股份有限公司 | 网络地址转换的实现方法及装置 |
US20180254962A1 (en) * | 2017-03-02 | 2018-09-06 | Salesforce.Com, Inc. | Augmenting functionality in distributed systems with payload headers |
CN109495392A (zh) * | 2018-10-31 | 2019-03-19 | 泰康保险集团股份有限公司 | 报文转换处理方法及装置、电子设备、存储介质 |
CN111953604A (zh) * | 2019-05-17 | 2020-11-17 | 华为技术有限公司 | 一种为业务流提供业务服务的方法和装置 |
CN112104697A (zh) * | 2018-05-31 | 2020-12-18 | 华为技术有限公司 | 一种数据处理的方法、多云管理系统以及相关设备 |
CN112527619A (zh) * | 2020-12-20 | 2021-03-19 | 大唐互联科技(武汉)有限公司 | 一种基于有向无环图结构的分析链路调用方法及系统 |
CN112671734A (zh) * | 2020-12-16 | 2021-04-16 | 中国平安人寿保险股份有限公司 | 面向多数据源的报文处理方法及其相关设备 |
CN112929358A (zh) * | 2021-01-29 | 2021-06-08 | 中国工商银行股份有限公司 | 用于微服务编排的方法和装置、电子设备、及介质 |
CN113051043A (zh) * | 2021-03-10 | 2021-06-29 | 北京沃东天骏信息技术有限公司 | 微服务异常补偿方法和装置 |
CN113395735A (zh) * | 2020-03-11 | 2021-09-14 | 华为技术有限公司 | 一种报文传输方法、装置和网络设备 |
CN113472889A (zh) * | 2021-07-08 | 2021-10-01 | 上海浦东发展银行股份有限公司 | 微服务的调度系统及方法 |
CN114254389A (zh) * | 2021-12-20 | 2022-03-29 | 中国工商银行股份有限公司 | 报文脱敏方法、装置、电子设备及介质 |
-
2022
- 2022-04-27 CN CN202210457314.9A patent/CN114844957B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078151A1 (en) * | 2000-12-15 | 2002-06-20 | Wickam Bryce C. | System for communicating messages of various formats between diverse communication devices |
CN104636076A (zh) * | 2013-11-15 | 2015-05-20 | 中国电信股份有限公司 | 一种用于云存储的分布式块设备驱动方法和系统 |
CN105794156A (zh) * | 2013-11-27 | 2016-07-20 | 日本电气株式会社 | 通信系统、通信方法、网络信息组合装置以及网络信息组合程序 |
US20160294673A1 (en) * | 2013-11-27 | 2016-10-06 | Nec Corporation | Communication system, communication method, network information combination apparatus, and network information combination program |
CN106921641A (zh) * | 2015-12-28 | 2017-07-04 | 华为技术有限公司 | 传输报文的方法和装置 |
CN107547666A (zh) * | 2016-06-24 | 2018-01-05 | 迈普通信技术股份有限公司 | 网络地址转换的实现方法及装置 |
US20180254962A1 (en) * | 2017-03-02 | 2018-09-06 | Salesforce.Com, Inc. | Augmenting functionality in distributed systems with payload headers |
CN112104697A (zh) * | 2018-05-31 | 2020-12-18 | 华为技术有限公司 | 一种数据处理的方法、多云管理系统以及相关设备 |
CN109495392A (zh) * | 2018-10-31 | 2019-03-19 | 泰康保险集团股份有限公司 | 报文转换处理方法及装置、电子设备、存储介质 |
CN111953604A (zh) * | 2019-05-17 | 2020-11-17 | 华为技术有限公司 | 一种为业务流提供业务服务的方法和装置 |
CN113395735A (zh) * | 2020-03-11 | 2021-09-14 | 华为技术有限公司 | 一种报文传输方法、装置和网络设备 |
CN112671734A (zh) * | 2020-12-16 | 2021-04-16 | 中国平安人寿保险股份有限公司 | 面向多数据源的报文处理方法及其相关设备 |
CN112527619A (zh) * | 2020-12-20 | 2021-03-19 | 大唐互联科技(武汉)有限公司 | 一种基于有向无环图结构的分析链路调用方法及系统 |
CN112929358A (zh) * | 2021-01-29 | 2021-06-08 | 中国工商银行股份有限公司 | 用于微服务编排的方法和装置、电子设备、及介质 |
CN113051043A (zh) * | 2021-03-10 | 2021-06-29 | 北京沃东天骏信息技术有限公司 | 微服务异常补偿方法和装置 |
CN113472889A (zh) * | 2021-07-08 | 2021-10-01 | 上海浦东发展银行股份有限公司 | 微服务的调度系统及方法 |
CN114254389A (zh) * | 2021-12-20 | 2022-03-29 | 中国工商银行股份有限公司 | 报文脱敏方法、装置、电子设备及介质 |
Non-Patent Citations (2)
Title |
---|
孔晓昀;王晓聪;陈正奎;: "海量跨域数据交换平台", 计算机系统应用, no. 01 * |
赵仲恺: "银行开放平台分布式应用架构设计与实现", 中国优秀硕士学位论文全文数据库 信息科技辑 * |
Also Published As
Publication number | Publication date |
---|---|
CN114844957B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836533B2 (en) | Automated reconfiguration of real time data stream processing | |
CN112910945B (zh) | 请求链路跟踪方法和业务请求处理方法 | |
CN107463434B (zh) | 一种分布式任务处理方法与设备 | |
CN113987074A (zh) | 分布式服务全链路监控方法、装置、电子设备及存储介质 | |
CN114490268A (zh) | 全链路监控方法、装置、设备、存储介质和程序产品 | |
CN109783562B (zh) | 一种业务处理方法和装置 | |
US11294740B2 (en) | Event to serverless function workflow instance mapping mechanism | |
CN113900834B (zh) | 基于物联网技术的数据处理方法、装置、设备及存储介质 | |
US20170017677A1 (en) | Application event bridge | |
US11934287B2 (en) | Method, electronic device and computer program product for processing data | |
CN114172966A (zh) | 单元化架构下的服务调用方法、服务处理方法及装置 | |
CN115357761A (zh) | 链路追踪方法、装置、电子设备及存储介质 | |
US10394531B2 (en) | Hyper dynamic Java management extension | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
CN116204239A (zh) | 业务处理方法、装置和计算机可读存储介质 | |
US11601495B2 (en) | Mechanism for a work node scan process to facilitate cluster scaling | |
CN111988398A (zh) | 一种数据获取方法、api网关、介质 | |
CN114237765B (zh) | 功能组件处理方法、装置、电子设备和介质 | |
CN111698109A (zh) | 监控日志的方法和装置 | |
CN114844957B (zh) | 链路报文转换方法、装置、设备、存储介质和程序产品 | |
CN114201508A (zh) | 数据处理方法、数据处理装置、电子设备和存储介质 | |
CN114356713A (zh) | 线程池监控方法、装置、电子设备及存储介质 | |
CN114780361A (zh) | 日志生成方法、装置、计算机系统及可读存储介质 | |
US11301498B2 (en) | Multi-cloud object store access |
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 |