CN115834699A - 一种服务调用链跟踪实现方法及系统 - Google Patents
一种服务调用链跟踪实现方法及系统 Download PDFInfo
- Publication number
- CN115834699A CN115834699A CN202111086654.7A CN202111086654A CN115834699A CN 115834699 A CN115834699 A CN 115834699A CN 202111086654 A CN202111086654 A CN 202111086654A CN 115834699 A CN115834699 A CN 115834699A
- Authority
- CN
- China
- Prior art keywords
- service node
- call
- calling
- chain
- vehicle
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004891 communication Methods 0.000 claims abstract description 49
- 238000006243 chemical reaction Methods 0.000 claims abstract description 38
- 230000002159 abnormal effect Effects 0.000 claims abstract description 9
- 238000011144 upstream manufacturing Methods 0.000 claims description 12
- 238000007619 statistical method Methods 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 25
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Abstract
本发明公开了一种服务调用链跟踪实现方法及系统,应用于车云一体的面向服务结构的架构中。本发明通过将调用链上下文设置在通信协议报文的报文头中,并通过转换节点进行协议格式转换,可以实现云端与车载端之间的跨系统以及跨通信协议服务;同时,云端根据全局调用链收集器所收集的调用链信息实现车服务之间、车服务与云服务间的全链路调用链连接。通过调用链进行展示和分析,统计接口和服务调用耗时、成功率、失败率等,可以实时分析调用链路执行情况,并快速定位出现异常的服务节点,以及提升软件运行性能。
Description
技术领域
本发明涉及调用链跟踪的技术领域,特别是涉及一种应用于面向服务结构(Service Oriented Architecture,SOA)的架构的服务调用链跟踪实现方法及系统。
背景技术
云端目前服务之间调用都有调用链跟踪技术,通过调用链能够分析服务执行状况。其中,调用链指在系统完成一次业务调用的过程中,把服务之间的调用信息(如,时间、接口、层次、结果)打印到日志中,然后将所有的数据连接为一个树状链条以产生一个完整的调用链。跟踪系统把过程中产生的日志信息进行分析处理,将业务端到端的执行完整的调用过程进行还原,根据不同维度进行统计分析;从而标识出有异常的服务调用,能够快速分析定界到出异常的服务;同时可根据数据统计分析系统性能瓶颈。
随着汽车的智能网联化,车载端已经开始采用SOA的软件架构,车载端一般采用SOMEIP、DDS等协议进行服务之间通信,而云端微服务之间通信一般采用HTTP、Kafka消息中间件异步等方式,故车载端与云端之间的服务所采用的通信方式、开发语言基本上均不相同,而Zipkin等主流云端微服务调用链并不能支持跨语言、跨通信方式的调用,因此目前在车云一体的面向服务结构(SOA)的架构中,在车载与云端跨系统通信、跨域通信、域内通信等服务之间无法实现调用链跟踪。
发明内容
本发明所要解决的技术问题在于,提供一种服务调用链跟踪实现方法及系统,可以实现车载端服务之间或与云服务之间的调用链跟踪,可以实时分析调用链路执行情况,并快速定位出现异常的服务节点。
为解决上述技术问题,作为本发明的一方面,提供一种服务调用链跟踪实现方法,用于在面向服务结构的架构中跟踪车载端与云端的服务调用,其包括如下步骤:
第一服务节点生成调用链上下文,并采用第一通信协议格式形成调用请求消息报文并发送出去,其中所述调用链上下文中包含有TraceID、SpanID以及UserID;所述调用链上下文存放于所述调用请求消息报文的报文头中;所述第一服务节点位于云端或车载端;
转换节点通过发现功能接收所述调用请求消息报文,解析其报文头中的调用链上下文,根据所述调用链上下文采用第二通信协议格式形成格式变换后的调用请求消息报文,并发送出去;所述调用链上下文存放于所述格式变换后的调用请求消息报文的报文头中,所述转换节点位于车载端;
第二服务节点接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点,并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器;所述第二服务节点位于车载端或云端;
其中,每一服务节点均记录有开始与结束时间戳。
其中,进一步包括:
第二服务节点如果本身不是最终执行节点,则将所述经格式转换后的调用请求消息发送给下一服务节点;
下一服务节点接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器,所述下一服务节点位于车载端。
当所述第一服务节点、第二服务节点、下一服务节点同时位于车载端时,其中:
所述第一服务节点、第二服务节点、下一服务节点位于不同的车载域中;或者所述第一服务节点、第二服务节点、下一服务节点中至少两个位于同一车载域中。
其中,在调用请求处理完后,将本次调用请求的所有调用链上下文信息以及车辆VIN码信息传送给位于云端的全局调用链收集器的步骤具体为:
通过与当前服务节点关联的域控制器代理节点,将本次调用请求的所有调用链上正文信息以及车辆VIN码信息传送给位于云端的全局调用链收集器。
其中,所述第一通信协议和第二通信协议均为SOMEIP、DDS、HTTP、MQTT、IPC以及Socket协议中之一种;
所述调用链相关信息至少包括:车辆VIN码信息、各服务节点对应的调用链上下文信息以及开始与结束时间戳。
其中,进一步包括:
根据全局调用链收集器所收集的所有调用链信息,定位出现异常的服务节点,并按车型进行成功率、失败率以及平均时延的统计分析,并生成统计报告。
相应地,作为本发明的另一方面,还提供一种服务调用链跟踪实现系统,用于在面向服务结构的架构中跟踪车载端与云端的服务调用,其包括:
第一服务节点,其位于云端或车载端,用于生成调用链上下文,并采用第一通信协议格式形成调用请求消息报文并发送出去,其中所述调用链上下文中包含有TraceID、SpanID以及UserID;所述调用链上下文存放于所述调用请求消息报文的报文头中;
转换节点,其位于车载端,用于通过发现功能接收所述调用请求消息报文,解析其报文头中的调用链上下文,根据所述调用链上下文采用第二通信协议格式形成格式变换后的调用请求消息报文,并发送出去;所述调用链上下文存放于所述格式变换后的调用请求消息报文的报文头中;
第二服务节点,其位于车载端或云端,用于接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器;
全局调用链收集器,用于接收第一服务节点以及第二服务节点上报的信息。
其中,所述第二服务节点进一步用于,如果本身不是最终执行节点,则将所述经格式转换后的调用请求消息发送给下一服务节点;
所述系统进一步包括:下一服务节点,用于接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器,所述下一服务节点位于车载端。
当所述第一服务节点、第二服务节点、下一服务节点同时位于车载端时,其中:
所述第一服务节点、第二服务节点、下一服务节点位于不同的车载域中;或者所述第一服务节点、第二服务节点、下一服务节点中至少两个位于同一车载域中。
其中,进一步包括:
域控制器代理节点,与所述第二服务节点或/及下一服务节点相关联,用于将来自第二服务节点或/及下一服务节的信息转发至位于云端的全局调用链收集器。
其中,所述第一通信协议和第二通信协议均为SOMEIP、DDS、HTTP、MQTT、IPC以及Socket协议中之一种;
所述调用链相关信息至少包括:车辆VIN码信息、各服务节点对应的调用链上下文信息以及开始与结束时间戳。
实施本发明实施例,具有如下的有益效果:
本发明提供了一种服务调用链跟踪实现方法及系统,应用于车云一体的面向服务结构的架构中。本发明通过将调用链上下文设置在通信协议报文的报文头中,并通过转换节点进行协议格式转换,可以实现云端与车载端之间的跨系统及跨通信协议服务;同时,云端根据全局调用链收集器所收集的调用链信息实现车服务之间、车服务与云服务间的全链路调用链连接。通过调用链进行展示和分析,统计接口和服务调用耗时、成功率、失败率等,可以实时分析调用链路执行情况,并快速定位出现异常的服务节点,以及提升软件运行性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。
图1为本发明所采用的一个调用流程原理示意图;
图2为本发明提供的一种服务调用链跟踪实现方法的一个实施例的主流程示意图;
图3为本发明的方法在车云服务跨系统调用应用的原理示意图;
图4为本发明的方法在车载跨域服务调用应用的原理示意图;
图5为本发明的方法在车载域内服务调用应用的原理示意图;
图6为本发明提供的一种服务调用链跟踪实现系统的一个实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
首先,对本发明的原理以及涉及的术语进行简要的说明。在分布式微服务环境下,微服务是来实现业务的,微服务调用的监控和跟踪需要一个独立的组件在不干扰微服务的情况下,监控微服务之间的调用跟踪。本发明基于分布式系统跟踪(OpenTracing)标准规范新增UserID、车辆VIN等信息,解决不同通信协议系统的API的不兼容,实现了一套车载同域服务之间、跨域、车端与云端之间调用跟踪的分布式追踪系统。
在本发明提供的技术中,当发送一次系统服务调用请求,系统会生成全局的TraceID,UserID以及不同服务节点的Span调用信息。其中,TraceID用于作为本次调用过程唯一标识码;而UserID用来区分请求调用请求者,由请求经过第一个服务填充,可以串联同一调用者的多次请求调用链,通过日志携带打印出来。调用链上下文(Span上下文)信息主要包含SpanID、调用方法名(RPC/SOMEIP/URI等)、Span调用开始时间和结束时间戳等数据信息。
如图1中所示,示出了本发明所采用的一个调用流程原理示意图。其中,调用请求经过的第一个服务节点(服务0)生成初始信息,包括TraceID、SpanID、UserID以及开始时间戳等当前调用状态信息,构造Span上下文,如果需要请求下游服务节点(服务1),则发送调用请求并传递到下游服务节点1,调用结束后,服务节点0根据下游服务的响应记录调用结束的时间戳。各服务节点可以将UserID以日志形式组合打印发送至云端,便于跟踪不同设备账号的调用记录。各服务节点的span调用开始和结束时间戳不需要向下游服务传递。例如,在调用过程中,用各个服务节点的Span结束时间戳减去Span开始时间戳就可以获得一次微服务调用Span的耗时。该调用耗时时长可以由域控制器代理节点(Agent组件)或云端计算生成。在当前服务调用结束后,每个服务节点将记录本次调用的执行过程与耗时信息,并组合生成调用链日志发送至云端调用链收集器,便于运维人员排查系统性能,实现性能调优。当调用跨系统/跨域/域内车载服务调用时,调用系统同时支持多种不同通信协议的跨协议调用。
可以理解的是,在本发明中,所有服务节点均会记录开始与结束时间戳,其中,开始时间戳为请求开始处理时间,对于调用方,一般为发出请求时刻,对被调用方,一般为接收请求时刻;而结束时间戳为请求处理完成时间,一般为收到请求返回时刻。
如图2所示,示出了本发明提供的一种服务调用链跟踪实现方法的一个实施例的主流程示意图,一并结合图3至图5所示;在本实施例中,所述方法用于在面向服务结构的架构中跟踪车载端与云端的服务调用,其包括如下步骤:
步骤S10,第一服务节点生成调用链上下文,并采用第一通信协议格式形成调用请求消息报文,将所述调用请求消息报文发送出去,其中所述调用链上下文中包含有TraceID、SpanID以及UserID;所述调用链上下文存放于所述调用请求消息报文的报文头中;所述第一服务节点位于云端或车载端;所述第一通信协议为SOMEIP、DDS、HTTP、MQTT、IPC以及Socket协议中之一种;
步骤S11,转换节点通过发现功能接收所述调用请求消息报文,解析其报文头中的调用链上下文,根据所述调用链上下文采用第二通信协议格式形成格式变换后的调用请求消息报文,并发送出去;所述调用链上下文存放于所述格式变换后的调用请求消息报文的报文头中,所述转换节点位于车载端;第二通信协议为SOMEIP、DDS、HTTP、MQTT、IPC以及Socket协议中之一种;
步骤S12,第二服务节点接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点,并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器;所述第二服务节点位于车载端或云端;更具体地,所述调用链相关信息至少包括:车辆VIN码信息、各服务节点对应的调用链上下文信息以及开始与结束时间戳。
其中,可以理解的是,第二服务节点如果本身不是最终执行节点,则将所述经格式转换后的调用请求消息发送给下一服务节点;
下一服务节点接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;并在调用请求处理完后,将本次调用请求的所有调用链上下文信息以及车辆VIN码信息传送给位于云端的全局调用链收集器,所述下一服务节点位于车载端。
可以理解的是,如果该服务节点如果本身不是最终执行节点,则将所述经格式转换后的调用请求消息发送给其再下一服务节点;其再下一服务节点与所述下一服务节点的进行相同的处理。
其中,在一个具体的例子中,第二服务节点或下一服务节点通过与当前服务节点关联的域控制器代理节点,将本次调用请求的所有调用链上正文信息以及车辆VIN码信息传送给位于云端的全局调用链收集器。
在具体的实施例中,所述第一服务节点位于云端,所述第二服务节点位于车载端;或者所述第一服务节点位于车载端,所述第二服务节点位于云端;
而当所述第一服务节点、第二服务节点、下一服务节点同时位于车载端时,所述第一服务节点、第二服务节点、下一服务节点位于不同的车载域中;或者所述第一服务节点、第二服务节点、下一服务节点中至少两个位于同一车载域中。
进一步包括:
在云端根据全局调用链收集器所收集的所有调用链信息,定位出现异常的服务节点,并按车型进行成功率、失败率以及平均时延的统计分析,并生成统计报告。
具体地,因此结合各个服务调用的调用链路信息,通过TraceID、UserID等信息相关联,可以实现对全链路调用的详细分析。每个域服务埋点,加入到通信协议中,如HTTP转SOMEIP/DDS,有专门线程收集信息并上报给域控制器Agent,收集TraceID及附加Spanid,再统一上报至云端进行分析。
通过TraceID可迅速找到一整条调用链的信息,再通过上报成功/失败及时延等信息,识别调用链中出错或超时的节点;通过Spanid形成调用树,再结合车载端软件上传日志的信息,即可帮助开发和运维人员快速排查和定位问题(如识别出超出正常值的时延调用链)。并且可以按照车型等各种维度,统计相同服务在不同硬件下,各软件的运行性能等(如统计成功率、失败率,平均时延)。
可以理解的是,在实际应用中,当车端各个车载域可作为微服务的一个服务节点,微服务需要跨域、域内或者车云域之间跨系统调用时,转换节点(如SOA服务中间件)用来理解微服务之间的传输协议,把TraceID等信息解析并传递给下一个服务,通过把第一通信协议(如HTTP协议中)的报文头(Header)与有效载荷(payload),其中,业务数据放置在有效载荷中,而把TraceID等调用链上下文信息初始化并注入报文头中,这样既不会对有效载荷造成影响,还可以跟踪数据传递给下一个服务。当多个微服务之间调用产生更多调用链信息,云端全局调用链收集器可以把所有的调用上下文数据收集起来,从而生成全局的调用链。
为了便于理解本发明的原理,下述将结合本发明在三种不同的典型调用场合中的应用进行时说明。
(一)、车云服务跨系统调用应用
如图3所示,示出了本发明的方法在车云服务跨系统调用应用的原理示意图。其中,当云端通过HTTP/MQTT等通信协议下发请求到车载端时,由于车载端通过SOME/IP/FastRTPS(DDS)协议支持SOA的架构设计思想,云端请求与车载端数据交互存在通信协议格式不同,通过转换节点(即SOA服务中间件)理解服务之间的传输协议,提供跨语言开发的协议适配能力,支持执行更多的协议适配(HTTP/MQTT转SOMEIP/DDS),云端服务把调用链上下文及UserID存放于协议报文header下发至车端,车端车载域通过中间件解析请求信息,提取调用链信息,并对解析请求头header信息进行处理,根据不同的协议类型进行逻辑匹配,比如SOME/IP逻辑,DDS逻辑,SOA中间件通过对应逻辑服务发现调用车载域服务能力,车载域服务接收请求并更新调用链上下文,在应用请求处理完后,将本次请求的所有调用链上下文信息(及VIN)组合生成调用链路日志发送至云端的全局调用链收集器。
具体地,第一服务节点(服务A)通过第一通信协议格式(MQTT协议)发起调用请求后,将请求调用信息同步至云端全局调用链收集器,SOA中间件通过订阅接收调用请求,解析请求信息,提取并解析调用请求报文的报文头(header)。若被调用的第二服务节点(服务B)的通信采用SOMEIP逻辑,SOA中间件将MQTT与SOMEIP之间的格式转换,车载域B的服务更新调用链上下文以及Span信息,调用链上下文包括TraceID,UserID传递,以及spanID,当前服务器时间戳更新;在应用处理完请求之后,将调用链信息(及VIN)以调用链路日志由域控制器代理节点(Agent B)输出给云端的全局调用链收集器。
同理,当车端通过HTTP/MQTT协议请求云端服务时,车载域通过车端中间件实现解析、初始化与更新调用链上下文,将本次请求的调用链上下文信息以及车辆VIN、UserID放入报文内上报至云端微服务,云端微服务将请求处理完成后,本次请求的所有调用链上下文信息以及车辆VIN、UserID组合生成调用链路日志发送至云端全局调用链收集器。
(二)、车载跨域服务调用
如图4所示,示出了本发明的方法在车载跨域服务调用应用的原理示意图。当不同车载域的服务之间跨域调用时,通过SOMEIP/DDS进行数据交互,调用方把调用链上下文及UserID存入报文,被调用方解析SOMEIP/DDS请求中调用链信息,并更新调用链上下文并上报至域控制器代理节点或车内统一调用链上报代理节点,所述代理节点实时或按配置策略把相关调用链信息组合生成调用链路日志发送至云端。
具体地,车载域A内的第一服务节点(服务A)通过SOME/IP协议服务发现发起调用请求后,由当前域的代理节点(AgentA)将请求调用信息同步上报云端,第二服务节点(服务B)通过服务发现订阅接收并解析请求信息,提取并解析该请求报文的报文头中的内容。
若被调用服务B通信还是采用SOME/IP逻辑,车载域B的服务B更新调用链上下文信息,例如更新spanID、UserID以及当前服务器时间戳;在应用处理完请求之后,将调用链信息(及VIN)以调用链路日志由本服务节点关联的代理节点(Agent B)统一输出云端的全局调用链收集器。
若服务B通信采用采用DDS逻辑逻辑,服务B需经过服务发现进行SOMEIP与DDS协议格式转换之后,更新调用链上下文信息;在应用处理完请求之后,将调用链信息(及VIN)以调用链路日志由Agent B统一输出云端的全局调用链收集器。
当服务B通过SOMEIP协议服务发现发起请求调用下一服务节点(服务C),车载域C若没有对应的代理节点(Agent),经过调用链上下文以及Span信息更新后,本次调用产生的调用链信息(及VIN)以调用链路日志可以统一上报至车载域B的Agent B,由Agent B实时或者按配置策略输出相关调用信息至云端的全局调用链收集器。
(三)、车载域内服务调用
如图5所示,示出了本发明的方法在车载域内服务调用应用的原理示意图。当一个车载域存在多个服务,域内服务之间的调用通过SOMEIP/DDS/IPC/Socket等通信方式,完成数据交互,调用方把调用链上下文及UserID存入报文,被调用方解析SOMEIP/DDS/IPC/Socket请求中调用链信息,更新调用链上下文并上报至域控制器Agent或车内统一调用链上报Agent,Agent实时或按配置策略把相关调用链信息组合生成调用链路日志发送至云端。
具体地,车载域A的第一服务节点(服务A_1)通过SOMEIP协议服务发现发起请求调用本域的其他服务后,由当前域控制器代理节点(Agent A)将请求调用信息同步上报云端,第二服务节点(服务A_2)通过服务发现订阅接收并解析请求信息,提取并解析请求报文的报文对的内容。
若被调用服务A_2通信还是采用SOME/IP逻辑,当前服务更新调用链上下文信息;在应用处理完请求之后,将调用链信息(及VIN)以调用链路日志由当前域的代理节点AgentA统一输出云端的全局调用链收集器。
若服务A_2通信采用DDS或者其他DDS/IPC/Socket逻辑,当前服务需经过服务发现进行SOMEIP与DDS/IPC/Socket协议格式转换之后,更新调用链上下文信息;在应用处理完请求之后,将调用链信息(及VIN)以调用链路日志由当前域Agent A统一输出云端的全局调用链收集器。
若车载域B没有相应的Agent,经过调用链上下文以及Span信息更新后,所有调用产生的调用链信息(及VIN)以调用链路日志可以统一上报至车载域A的Agent A,由Agent A实时或者按配置策略输出相关调用信息至云端的全局调用链收集器。
假设车载域B的域控制器Agent B作为车内统一调用链上报Agent,车载域C不存在直接的Agent,车载域C的服务调用链信息上报至Agent B,车载域A可能通过自身域Agent A完成调用链上报,也可能通过Agent B完成统一上报。
如图6所示,示出了本发明提供的一种服务调用链跟踪实现系统的一个实施例的结构示意图,在本实施例中,所述系统1用于在面向服务结构的架构中跟踪车载端与云端的服务调用,其包括:
第一服务节点10,其位于云端或车载端,用于生成调用链上下文,并采用第一通信协议格式形成调用请求消息报文,将所述调用请求消息报文发送出去,其中所述调用链上下文中包含有TraceID、SpanID以及UserID;所述调用链上下文存放于所述调用请求消息报文的报文头中;
转换节点11,其位于车载端,用于通过发现功能接收所述调用请求消息报文,解析其报文头中的调用链上下文,根据所述调用链上下文采用第二通信协议格式形成格式变换后的调用请求消息报文,并发送出去;所述调用链上下文存放于所述格式变换后的调用请求消息报文的报文头中;
第二服务节点12,其位于车载端或云端,用于接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器;
全局调用链收集器14,用于接收第一服务节点10以及第二服务节点12上报的信息。
其中,每一服务节点均记录有开始与结束时间戳。
其中,所述第二服务节点12进一步用于,如果本身不是最终执行节点,则将所述经格式转换后的调用请求消息发送给下一服务节点15;
所述系统进一步包括:下一服务节点15,用于接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器,所述下一服务节点位于车载端。可以理解的是,所述下一服务节点可以有多个。
其中,所述第一服务节点10位于云端,所述第二服务节点12位于车载端;或者
所述第一服务节点10位于车载端,所述第二服务节点12位于云端;或者
所述第一服务节点10、第二服务节点12、下一服务节点15位于不同的车载域中;或者
所述第一服务节点10、第二服务节点12、下一服务节点15中至少两个位于同一车载域中。
其中,进一步包括:
域控制器代理节点13,与所述第二服务节点12或/及下一服务节点15相关联,用于将来自第二服务节点12或/及下一服务节15的信息转发至位于云端的全局调用链收集器14。
其中,所述第一通信协议和第二通信协议均为SOMEIP、DDS、HTTP、MQTT、IPC以及Socket协议中之一种,所述调用链相关信息至少包括:车辆VIN码信息、各服务节点对应的调用链上下文信息以及开始与结束时间戳。
更多的内容可以结合前述对图1至图5的描述,在此不进行详述。
实施本发明实施例,具有如下的有益效果:
本发明提供了一种服务调用链跟踪实现方法及系统,应用于车云一体的面向服务结构的架构中。本发明通过将调用链上下文设置在通信协议报文的报文头中,并通过转换节点进行协议格式转换,可以实现云端与车载端之间的跨系统及跨通信协议服务;同时,云端根据全局调用链收集器所收集的调用链信息实现车服务之间、车服务与云服务间的全链路调用链连接。通过调用链进行展示和分析,统计接口和服务调用耗时、成功率、失败率等,可以实时分析调用链路执行情况,并快速定位出现异常的服务节点,以及提升软件运行性能。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (11)
1.一种服务调用链跟踪实现方法,用于在面向服务结构的架构中跟踪车载端与云端的服务调用,其特征在于,包括如下步骤:
第一服务节点生成调用链上下文,并采用第一通信协议格式形成调用请求消息报文并发送出去,其中所述调用链上下文中包含有TraceID、SpanID以及UserID;所述调用链上下文存放于所述调用请求消息报文的报文头中,所述第一服务节点位于云端或车载端;
转换节点通过发现功能接收所述调用请求消息报文,解析其报文头中的调用链上下文,根据所述调用链上下文采用第二通信协议格式形成格式变换后的调用请求消息报文,并发送出去;所述调用链上下文存放于所述格式变换后的调用请求消息报文的报文头中,所述转换节点位于车载端;
第二服务节点接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点,并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器;所述第二服务节点位于车载端或云端;
其中,每一服务节点均记录有开始与结束时间戳。
2.如权利要求1所述的方法,其特征在于,进一步包括:
第二服务节点如果本身不是最终执行节点,则将所述经格式转换后的调用请求消息发送给下一服务节点;
下一服务节点接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器,所述下一服务节点位于车载端,并记录开始与结束时间戳。
3.如权利要求2所述的方法,其特征在于,当所述第一服务节点、第二服务节点、下一服务节点同时位于车载端时,其中:
所述第一服务节点、第二服务节点、下一服务节点位于不同的车载域中;或者所述第一服务节点、第二服务节点、下一服务节点中至少两个位于同一车载域中。
4.如权利要求1至3任一项所述的方法,其特征在于,在调用请求处理完后,将本次调用请求的所有调用链上下文信息以及车辆VIN码信息传送给位于云端的全局调用链收集器的步骤具体为:
通过与当前服务节点关联的域控制器代理节点,将本次调用请求的所有调用链上正文信息以及车辆VIN码信息传送给位于云端的全局调用链收集器。
5.如权利要求4所述的方法,其特征在于,所述第一通信协议和第二通信协议均为SOMEIP、DDS、HTTP、MQTT、IPC以及Socket协议中之一种;
所述调用链相关信息至少包括:车辆VIN码信息、各服务节点对应的调用链上下文信息以及开始与结束时间戳。
6.如权利要求5所述的方法,其特征在于,进一步包括:
根据全局调用链收集器所收集的所有调用链信息,定位出现异常的服务节点,并按车型进行成功率、失败率以及平均时延的统计分析,并生成统计报告。
7.一种服务调用链跟踪实现系统,用于在面向服务结构的架构中跟踪车载端与云端的服务调用,其特征在于,包括:
第一服务节点,其位于云端或车载端,用于生成调用链上下文,并采用第一通信协议格式形成调用请求消息报文并发送出去,其中所述调用链上下文中包含有TraceID、SpanID以及UserID;所述调用链上下文存放于所述调用请求消息报文的报文头中;
转换节点,其位于车载端,用于通过发现功能接收所述调用请求消息报文,解析其报文头中的调用链上下文,根据所述调用链上下文采用第二通信协议格式形成格式变换后的调用请求消息报文,并发送出去;所述调用链上下文存放于所述格式变换后的调用请求消息报文的报文头中;
第二服务节点,其位于车载端或云端,用于接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID信息;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点,并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器;
全局调用链收集器,用于接收第一服务节点以及第二服务节点上报的信息。
8.如权利要求7所述的系统,其特征在于,其中所述第二服务节点进一步用于,如果本身不是最终执行节点,则将所述经格式转换后的调用请求消息发送给下一服务节点;
所述系统进一步包括:下一服务节点,用于接收所述格式变换后的调用请求消息,解析其内容,并更新当前调用链上下文中的SpanID信息;如果本身是最终执行节点,则执行相应的调用请求,将请求执行结果返回上游服务节点;并在调用请求处理完后,将本次调用请求的所有调用链相关信息传送给位于云端的全局调用链收集器,所述下一服务节点位于车载端。
9.如权利要求8所述的系统,其特征在于,当所述第一服务节点、第二服务节点、下一服务节点同时位于车载端时,其中:
所述第一服务节点、第二服务节点、下一服务节点位于不同的车载域中;或者所述第一服务节点、第二服务节点、下一服务节点中至少两个位于同一车载域中。
10.如权利要求7至9任一项所述的方法,其特征在于,进一步包括:
域控制器代理节点,与所述第二服务节点或/及下一服务节点相关联,用于将来自第二服务节点或/及下一服务节的信息转发至位于云端的全局调用链收集器。
11.如权利要求10所述的系统,其特征在于,所述第一通信协议和第二通信协议均为SOMEIP、DDS、HTTP、MQTT、IPC以及Socket协议中之一种;
所述调用链相关信息至少包括:车辆VIN码信息、各服务节点对应的调用链上下文信息以及开始与结束时间戳。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111086654.7A CN115834699A (zh) | 2021-09-16 | 2021-09-16 | 一种服务调用链跟踪实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111086654.7A CN115834699A (zh) | 2021-09-16 | 2021-09-16 | 一种服务调用链跟踪实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834699A true CN115834699A (zh) | 2023-03-21 |
Family
ID=85515058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111086654.7A Pending CN115834699A (zh) | 2021-09-16 | 2021-09-16 | 一种服务调用链跟踪实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834699A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117118880A (zh) * | 2023-08-01 | 2023-11-24 | 南京领行科技股份有限公司 | 基于多甬道发布的测试方法、装置、电子设备及存储介质 |
CN117194176A (zh) * | 2023-11-03 | 2023-12-08 | 中国电子科技集团公司第十五研究所 | 非侵入式运行监测方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488942A (zh) * | 2008-01-18 | 2009-07-22 | 财团法人工业技术研究院 | 车载媒体导向系统传输网络中多媒体数据分享系统与方法 |
US20140005880A1 (en) * | 2012-06-28 | 2014-01-02 | Harman Becker Automotive Systems Gmbh | Telematics system |
CN110730246A (zh) * | 2019-10-23 | 2020-01-24 | 家乡互动(厦门)网络科技有限公司 | 一种微服务架构下的分布式链路跟踪方法 |
CN111459766A (zh) * | 2019-11-14 | 2020-07-28 | 国网浙江省电力有限公司信息通信分公司 | 一种面向微服务系统的调用链跟踪与分析方法 |
CN111478798A (zh) * | 2020-03-18 | 2020-07-31 | 华为技术有限公司 | 故障处理方法、故障处理的装置和存储介质 |
CN112416708A (zh) * | 2020-11-17 | 2021-02-26 | 中国工商银行股份有限公司 | 异步调用链路监控方法及系统 |
CN112783629A (zh) * | 2021-02-01 | 2021-05-11 | 天津五八到家货运服务有限公司 | 服务调用方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-16 CN CN202111086654.7A patent/CN115834699A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488942A (zh) * | 2008-01-18 | 2009-07-22 | 财团法人工业技术研究院 | 车载媒体导向系统传输网络中多媒体数据分享系统与方法 |
US20140005880A1 (en) * | 2012-06-28 | 2014-01-02 | Harman Becker Automotive Systems Gmbh | Telematics system |
CN110730246A (zh) * | 2019-10-23 | 2020-01-24 | 家乡互动(厦门)网络科技有限公司 | 一种微服务架构下的分布式链路跟踪方法 |
CN111459766A (zh) * | 2019-11-14 | 2020-07-28 | 国网浙江省电力有限公司信息通信分公司 | 一种面向微服务系统的调用链跟踪与分析方法 |
CN111478798A (zh) * | 2020-03-18 | 2020-07-31 | 华为技术有限公司 | 故障处理方法、故障处理的装置和存储介质 |
CN112416708A (zh) * | 2020-11-17 | 2021-02-26 | 中国工商银行股份有限公司 | 异步调用链路监控方法及系统 |
CN112783629A (zh) * | 2021-02-01 | 2021-05-11 | 天津五八到家货运服务有限公司 | 服务调用方法、装置、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117118880A (zh) * | 2023-08-01 | 2023-11-24 | 南京领行科技股份有限公司 | 基于多甬道发布的测试方法、装置、电子设备及存储介质 |
CN117194176A (zh) * | 2023-11-03 | 2023-12-08 | 中国电子科技集团公司第十五研究所 | 非侵入式运行监测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7564953B2 (en) | System and method for end-to-end communications tracing | |
WO2022179140A1 (zh) | 一种数据处理方法及系统 | |
CN115834699A (zh) | 一种服务调用链跟踪实现方法及系统 | |
US20070016674A1 (en) | Information exchange system, management server, and method for reducing network load used in the same | |
US20080162690A1 (en) | Application Management System | |
CN111432025B (zh) | 一种面向云边协同的分布式服务目录管理方法及系统 | |
CN111176941A (zh) | 一种数据处理的方法、装置和存储介质 | |
CN108833565A (zh) | 一种监控服务器的方法、装置、服务器和存储介质 | |
EP1766943A2 (en) | System and method for end-to-end communications tracing | |
CN113342503B (zh) | 实时进度反馈方法、装置、设备及存储介质 | |
CN114710445A (zh) | 语音软交换服务方法、装置、系统、电子设备及存储介质 | |
US20070201640A1 (en) | System, device and method for operation and maintenance of network devices | |
JPH10320362A (ja) | 通知サービスを含むネットワークにおける通知伝送方法とこれを利用するためのネットワーク | |
KR20010082938A (ko) | 차세대 이동통신 시스템에서 원격 프로세스 호를 이용한운용 보전 방법 | |
CN113742004B (zh) | 一种基于flink框架的数据处理方法和装置 | |
CN113347195A (zh) | 一种物联网设备通信协议包动态挂载系统及方法 | |
CN112671822B (zh) | 服务请求处理方法、装置、存储介质、服务器和系统 | |
CN110769026A (zh) | 分布式互联网信息采集系统及方法 | |
CN116069597A (zh) | 一种基于流量拦截的分布式链路追踪方法 | |
CN117557211A (zh) | 基于流程自动化的财务业务智能处理方法、平台及介质 | |
CN115102854B (zh) | 微服务的远程过程调用路由管理控制方法、系统及设备 | |
CN114115985B (zh) | 多版本共存的应用服务系统、传输方法、设备及存储介质 | |
JPH10333940A (ja) | 監視システム | |
CN113079524B (zh) | 一种基于信令软采的信令跟踪方法、基站及可读存储介质 | |
CN117667565A (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 |