CN115525440A - 微服务调用数据处理方法、装置、介质及设备 - Google Patents
微服务调用数据处理方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN115525440A CN115525440A CN202110701928.2A CN202110701928A CN115525440A CN 115525440 A CN115525440 A CN 115525440A CN 202110701928 A CN202110701928 A CN 202110701928A CN 115525440 A CN115525440 A CN 115525440A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- historical
- calling
- current
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种微服务调用数据处理方法、装置、介质及设备,涉及微服务技术领域,该方法包括:获取在当前微服务调用过程中产生的当前调用数据,所述当前微服务是响应于针对业务服务的服务请求而被调用的微服务;确定缓存的所述业务服务对应的历史调用数据集合;所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系处于第一预设状态;根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新;所述目标微服务包括所述当前微服务和所述历史微服务。本申请通过实时处理单个当前微服务的当前调用数据,不断更新业务服务的微服务调用树,更快速的展示已明确的调用关系。
Description
技术领域
本申请涉及微服务技术领域,具体涉及一种微服务调用数据处理方法、装置、介质及设备。
背景技术
为了支撑日益增长的业务量,微服务架构被广泛使用在分布式系统中。互联网应用构建在不同的软件模块集上,这些软件模块集可能是由不同的团队开发、可能使用不同的变成语言来实现、可能部署在了几千台服务器,横跨多个不同的数据中心,造成分布式系统日趋复杂。
此外,随着业务服务的复杂化,其涉及的微服务的也越来越多,对于分布式系统的后台开发人员而言,梳理出每个业务服务对应的微服务的调用关系变得更加不易,进而无法高效跟踪微服务的调用过程。
发明内容
为了提高确定微服务调用关系的效率,实现实时确定微服务的调用关系,本申请提供了一种微服务调用数据处理方法、装置、介质及设备。技术方案如下:
第一方面,本申请提供了一种微服务调用数据处理方法,所述方法包括:
获取在当前微服务调用过程中产生的当前调用数据,所述当前微服务是响应于针对业务服务的服务请求而被调用的微服务;
确定缓存的所述业务服务对应的历史调用数据集合;所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系处于第一预设状态;
根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新;所述目标微服务包括所述当前微服务和所述历史微服务。
第二方面,本申请提供了一种微服务调用数据处理装置,所述装置包括:
当前调用数据获取模块,用于获取在当前微服务调用过程中产生的当前调用数据,所述当前微服务是响应于针对业务服务的服务请求而被调用的微服务;
历史调用数据确定模块,用于确定缓存的所述业务服务对应的历史调用数据集合;所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系处于第一预设状态;
调用关系确定模块,用于根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新;所述目标微服务包括所述当前微服务和所述历史微服务。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如第一方面所述的一种微服务调用数据处理方法。
第四方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如第一方面所述的一种微服务调用数据处理方法。
第五方面,本申请提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如第一方面所述的一种微服务调用数据处理方法。
本申请提供的一种微服务调用数据处理方法、装置、介质及设备,具有如下技术效果:
本申请提供了一种实时确定微服务调动关系的方法,对于获取到的单个当前微服务的当前调用数据,结合缓存的历史调动数据集合,所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系未知,确定当前微服务和历史微服务可能存在的调用关系,也即通过对新获取的单个微服务的调用数据进行实时处理,不断更新业务服务的微服务调用树,可以更为快速地展示出业务服务的局部或全部调用链路,避免等待调用数据汇集带来的处理效率低下,同时能够快速记录同一微服务的调用情况,进一步地,还可以和离线方式结合,确定不同微服务集群之间的调用情况,便于后端人员的监管和维护。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种微服务调用数据处理方法的实施环境示意图;
图2是本申请实施例提供的一种微服务调用数据处理方法的流程示意图;
图3是本申请实施例提供的一种确定当前微服务的调用数据的流程示意图;
图4是本申请实施例提供的一种确定调用关系的流程示意图;
图5是本申请实施例提供的另一种确定调用关系的流程示意图;
图6是本申请实施例提供的另一种确定调用关系的流程示意图;
图7是本申请实施例提供的另一种确定调用关系的结构示意图;
图8是本申请实施例提供的一种确定业务服务的调用树的流程示意图;
图9是本申请实施例提供的一种展示业务服务的调用树的效果示意图;
图10是本申请实施例提供的一种微服务调用监管系统的架构示意图;
图11是本申请实施例提供的一种生成调用数据的流程示意图;
图12是本申请实施例提供的一种对微服务调用树的拆分示意图;
图13是本申请实施例提供的一种微服务调用关系的示意图;
图14是本申请实施例提供的一种确定调用关系的流程示意图;
图15是本申请实施例提供的一种跨地区的调用数据的示意图;
图16是本申请实施例提供的一种展示微服务调用关系的效果示意图;
图17是本申请实施例提供的一种微服务调用数据处理装置的示意图;
图18是本申请实施例提供的用于实现一种微服务调用数据处理方法的设备的硬件结构示意图。
具体实施方式
为了实时确定微服务的调用关系,本申请实施例提供了一种微服务调用数据处理方法、装置、介质及设备。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解本申请实施例所述的技术方案及其产生的技术效果,本申请实施例对于涉及到的相关专业名词进行解释:
微服务:一种软件开发技术,是面向服务的体系结构架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。
RPC:Remote Procedure Call,远程过程调用;远程过程调用跨越了开放系统互连网络通信模型中的传输层和应用层,使得开发应用程序更容易。
请参阅图1,其为本申请实施例提供的一种微服务调用数据处理方法的实施环境示意图,如图1所示,该实施环境可以至少包括客户端01、服务器02和服务器03。
具体的,所述客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、监控设备及语音交互设备等类型的设备,也可以包括运行于设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,所述客户端01可以用于发起针对业务服务的服务请求至所述服务器02以调用对应的微服务。
具体的,所述服务器02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。所述服务器02可以包括有网络通信单元、处理器和存储器等等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。具体的,所述服务器02可以用于响应于用户的服务请求,远程调用微服务并上报调用数据至所述服务器03。
具体的,所述服务器03可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。所述服务器03可以包括有网络通信单元、处理器和存储器等等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。具体的,所述服务器03可以用于采集上报的调用数据并实时处理,确定与上报的调用数据相关的一个或多个微服务的调用关系。
本申请实施例还可以结合云技术实现,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件及网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术,也可理解为基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术及应用技术等的总称。云技术需要以云计算作为支撑。云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。具体地,所述服务器02、所述服务器03和数据库位于云端,所述服务器02和所述服务器03可以是实体机器,也可以是虚拟化机器。
以下介绍本申请提供的一种微服务调用数据处理方法。图2是本申请实施例提供的一种微服务调用数据处理方法的流程图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。请参照图2,本申请实施例提供的一种微服务调用数据处理方法可以包括如下步骤:
S210:获取在当前微服务调用过程中产生的当前调用数据,所述当前微服务是响应于针对业务服务的服务请求而被调用的微服务。
可以理解的是,在微服务架构下,一个业务服务往往涉及多个微服务的调用,由于多个微服务可能部署在不同的服务器中,可以通过远程过程调用框架调用各微服务完成对服务请求的响应。为了对采用微服务架构的分布式系统进行有效监控,例如故障定位、链路梳理、容量评估或性能分析等,需要记录响应于每个服务请求,系统内部所调用的微服务以及微服务之间的调用关系,也可称作链路跟踪。示例性的,直播的功能包括:开播系统、连麦系统、对抗系统、弹幕系统、排行榜系统、支付系统、贵族系统等,直播的功能越来越复杂,系统的微服务多地或多集群部署,造成调用链路的不易梳理。
在本申请实施例中,微服务架构下的各微服务配置有接口组件,当微服务被调用时,调用信息通过接口组件进行上报,确定对应的调用数据。调用数据可以包括对应于服务请求(或叫做对应于业务服务)的业务标识、表征调用跨度的跨度标识,还可以包括前一跨度的跨度标识、微服务接口名称、耗时信息、业务扩展信息等。
在本申请的一个实施例中,在步骤S210之前,如图3所示,所述方法还可以包括以下步骤:
S201:响应于针对业务服务的服务请求,执行对所述当前微服务的目标远程过程调用。
可以理解的是,对应于一个服务请求,系统会分配一个业务标识。示例性的,当服务请求涉及的微服务在进行调用时,远程过程调用框架会通过带内数据的方式将该业务标识传递到下游的微服务,对于响应于针对业务服务的服务请求而被调用的微服务而言,其调用数据中的业务标识为同一个,故可以根据业务标识确定业务服务对应的调用数据集合以及对应的微服务集合。
S203:在执行所述目标远程过程调用的起始时刻和终止时刻,对应生成第一调用数据和第二调用数据。
在一种可行的实施方式中,基于远程过程调用框架,在每次远程过程调动的起始时刻和终止时刻,对应生成第一调用数据和第二调用数据。示例性的,当微服务A远程过程调用微服务B时,对于该远程过程调用,微服务A为主调微服务,微服务B为被调微服务,则当微服务A发起调用时,生成第一调用数据,当微服务B接收到调用信息时,生成第二调用数据,其中第一调用数据和第二调用数据包括相同的表征调用跨度的跨度标识。
S205:根据所述第一调用数据和所述第二调用数据,确定所述当前微服务的当前调用数据;所述当前调用数据包括对应于所述服务请求的业务标识和表征调用跨度的跨度标识。
在一种可行的实施方式中,基于第一调用数据和第二调用数据包括相同的表征调用跨度的跨度标识,故可以将第一调用数据和第二调用数据进行合并,得到的调用数据作为被调微服务的调用数据,如在上述实施例中,第一调用数据和第二调用数据合并后作为微服务B的调用数据。
在本申请的另一个实施例中,当前微服务为所述业务服务中第一个被调用的微服务,则在调用当前微服务时,直接生成当前调用数据。
S230:确定缓存的所述业务服务对应的历史调用数据集合;所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系处于第一预设状态。
可以理解的是,在微服务架构下,一个业务服务往往涉及多个微服务的调用,由于多个微服务可能部署在不同的服务器或不同的服务器集群中,当通过调用各微服务完成对服务请求的响应时,获取到各微服务的调用数据的顺序与各微服务的调用顺序可能会不一致,故会出现一部分微服务暂时无法确定调用关系的情况。常见的一种离线生成调用关系的方法中,通过等待一定时间来尽可能地汇集到该业务服务所涉及的全部微服务的调用数据,进而确定该业务服务所涉及的全部微服务之间的调用关系,但这种方式效率低下,耗时较长。
在本申请实施例中,可以使用局部微服务的调用数据,实时确定业务服务中的局部调用关系,并不断更新业务服务的微服务调用树,以便快速地梳理出该业务服务的调用链路,还可以快速实时地更新单个微服务的调用情况,实现对微服务框架的高效监管。在获取到当前微服务的当前调用数据之前,可能已经获取了业务服务中一部分微服务的调用数据,不同于离线生成调用关系的方法,若这一部分微服务内部可以先确定某一个微服务的调用关系,则直接将该微服务的调用关系添加至业务服务的微服务调用树中,余下的调用关系还没有完全确定的微服务作为历史微服务,对应的调用数据作为历史调用数据构成历史调用数据集合,也即所述的调用关系处于第一预设状态表示调用关系没有完全确定。在本申请的一个实施例中,所述调用关系可以包括前向调用关系和后向调用关系,第一预设状态可以表征前向调用关系和后向调用关系没有完全确定,可以是仅确定了其中一个或者是两个都未知。
示例性的,对于微服务A,微服务A在业务服务中的前向调用关系可以由业务服务的起始微服务(也即根节点微服务)、微服务A的前一微服务(也即父节点微服务)和微服务A各自的微服务标识表征,微服务A在业务服务中的后向调用关系可以由业务服务的起始微服务、微服务A和微服务的后一微服务(也即子节点微服务)各自的微服务标识表征。当确定了微服务A的一组前向调用关系和后向调用关系,也即在业务服务的微服务调用树中唯一确定了微服务A所处的链路位置。优选地,对于业务服务的起始微服务(也即根节点微服务),其只需确定后向调用关系,若在获取到当前微服务的当前调用数据之前,起始微服务的后向调用关系已经确定,为了便于确定历史微服务或当前微服务的调用关系,可以仍将起始微服务作为一个特殊的历史微服务,但在后续的确定历史微服务的调用关系时可以跳过起始微服务。
S250:根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新;所述目标微服务包括所述当前微服务和所述历史微服务。
在本申请实施例中,当获取到当前微服务的当前调用数据时,对当前调用数据可以进行实时处理。具体地,结合历史调用数据集合,可以尝试确定当前微服务的前向调用关系或后向调用关系,也可以尝试确定一个或多个历史微服务的前向调用关系或后向调用关系。
在本申请的实施例中,业务服务中微服务的调用链路以调用树的形式存储,每一个微服务是调用树中的一个节点。在另一种可行的实施方式中,还可以将微服务的一个调用接口作为调用树中的一个节点,与本申请提供的实施例属于同一构思,此处不作赘述。
对于一个微服务(此时该微服务不为根节点微服务),确定了所在业务服务的根节点微服务、父节点微服务和子节点微服务,相当于确定了该微服务在业务服务中的前向调用关系和后向调用关系,也就唯一确定了该微服务在业务服务的微服务调用树中的链路位置。故可以根据当前微服务和各历史微服务在业务服务中的节点类型,确定其中的调用关系。
具体的,如图4所示,所述步骤S250可以包括以下步骤:
S400:根据所述历史调用数据集合,确定没有根节点的历史微服务,得到第一历史微服务集合。
可以理解的是,所述业务服务对应的历史调用数据集合中,各历史调用数据对应的历史微服务均是业务服务所涉及的微服务。
S410:确定所述当前微服务在所述业务服务中的第一服务节点类型。
示例性的,基于树形结构,当前微服务可以是调用树的根节点微服务、某一微服务的父节点微服务或某一微服务的子节点微服务。
S430:在所述第一服务节点类型为根节点时,根据所述历史调用数据集合查找所述第一历史微服务集合中每个第一历史微服务对应的父节点微服务和子节点微服务。
即对于各第一历史微服务而言,此时确定了根节点微服务,欲确定各第一历史微服务的调用关系,还需确定各第一历史微服务对应的父节点微服务和子节点微服务。
S450:若查找到,则根据所述当前微服务以及各所述第一历史微服务对应的父节点微服务和子节点微服务,确定各所述第一历史微服务对应的调用关系;所述调用关系包括前向调用关系和后向调用关系。
在一种可行的实施方式中,对于某一个第一历史微服务,若没有查找到对应的父节点微服务,则可在第二历史微服务集合中查找该第一历史微服务的子节点微服务,所述第二历史微服务集合由没有父节点的历史微服务构成;若能查找到,则可以确定该第一历史微服务的后向调用关系,同时可以将该第一历史微服务作为一个第二历史微服务添加是第二历史微服务集合中。
具体地,如图5所示,所述步骤S250还可以包括以下步骤:
S410:确定所述当前微服务在所述业务服务中的第一服务节点类型。
S420:在所述第一服务节点类型不是根节点时,确定各历史微服务在所述业务服务中的第二服务节点类型。
S440:在所述第二服务节点类型均不为根节点时,根据所述当前调用数据更新所述历史调用数据集合。
上述实施例中,也即确定了当前微服务和各历史微服务都不是业务服务的根节点微服务,则当前微服务和各历史微服务的调用关系均有待确定,同时因当前微服务的调用关系未知,故当前微服务可以作为历史微服务,当前调用数据作为历史调用数据,进而更新历史调用数据集合。进一步地,该情况下,还未出现根节点微服务,故当前微服务同样还是第一历史微服务。
具体的,如图6所示,所述步骤S250还可以包括以下步骤:
S410:确定所述当前微服务在所述业务服务中的第一服务节点类型。
S420:在所述第一服务节点类型不是根节点时,确定各历史微服务在所述业务服务中的第二服务节点类型。
S421:当所述第二服务节点类型中包括根节点时,根据所述历史调用数据集合查找所述当前微服务对应的父节点微服务。
S423:若查找到,则根据所述根节点对应的根节点微服务、所述当前微服务和所述当前微服务对应的父节点微服务,确定所述当前微服务的前向调用关系。
在另一种可行的实施方式中,如图7所示,在根据所述历史调用数据集合查找所述当前微服务对应的父节点微服务时,所述方法还可以包括以下步骤:
S424:若未查找到,则根据所述历史调用数据集合,确定没有父节点的历史微服务,并基于所述没有父节点的历史微服务得到第二历史微服务集合。
S425:在所述第二历史微服务集合中查找所述当前微服务对应的子节点微服务。
S426:若查找到,则根据所述根节点对应的根节点微服务、所述当前微服务和所述当前微服务对应的子节点微服务,确定所述当前微服务的后向调用关系。
S427:根据所述当前调用数据和所述子节点微服务对应的调用数据,更新所述历史调用数据集合。
也即,在该情况下,当前微服务的父节点微服务不存在,当前微服务的子节点微服务存在同时也属于第二历史微服务集合,则确定了当前微服务的后向调用关系后,也就相当于确定了该子节点微服务的父节点微服务(也即确定了该子节点微服务的前向调用关系),故需要将该子节点微服务从第二历史微服务集合中去除;进一步地,若该子节点微服务的后向调用数据也已确定,还需将该子节点微服务的调用数据从历史调用数据集合中去除;同时将当前微服务作为一个第二历史微服务添加是第二历史微服务集合中,也即当前微服务作为了一个历史微服务,对应地将当前调用数据添加至所述历史调用数据集合。
在本申请实施例中,可以使用局部的微服务的调用数据,实时确定业务服务中的局部调用关系,并不断更新业务服务的微服务调用树。同时,还可以结合离线生成调用关系的思路,将两种方法结合使用,例如对于分布式集群,将同一微服务集群内的调用数据就近上报至同一计算集群进行实时处理,而对于跨微服务集群的调用数据,则可以参考离线方式,按集群汇聚调用数据并由各集群对应的异步计算集群单独处理,进而也可以确定微服务集群间的调用关系。
在本申请的一个实施例中,如图8所示,所述方法还可以包括以下步骤:
S271:确定所述业务服务对应的微服务调用树。
所述微服务调用树存储有所述业务服务的调用链路的数据。
S272:根据所述调用关系未知的微服务在所述业务服务中的调用关系,更新所述微服务调用树。
S273:响应于针对所述业务服务的调用链路查看请求,根据所述业务服务对应的微服务调用树展示针对所述业务服务的微服务调用链路。
示例性的,本申请实施例提供的方法所展示的业务服务的微服务调用链路,可如图9所示,图9中名称一列示出了对于信息流商业化这一业务服务所调用的微服务,其中GetAds为该业务服务的根节点微服务,以下为不同调用层级的微服务。同时根据各微服务的调用数据,还可以显示各微服务的后端调用接口、调用比例、调用成功率和耗时等信息,可以方便后台人员熟悉、掌握分布式系统架构,梳理出对应的服务调用链路,进一步地还可以方便查看微服务集群间的调用关系或是微服务集群不合理调用的故障定位。
图10是本申请实施例提供的一个微服务调用监控系统的架构示意图,如图10所示,所述系统主要分为四大模块:微服务Api(Application Programming Interface,应用程序接口)模块(嵌入在用户服务中)、实时计算集群、离线补偿集群和管理端。其中,微服务Api模块在RPC过程中生成调用数据并由代理就近接入实时计算集群,对于写入Ckafka(Cloud Kafka,是一个分布式的、高吞吐量、高可扩展性的消息系统)的调用数据,通过Flink(一个开源流处理框架)集群对调用数据进行实时处理,将确定的调用关系按对应的数据存储格式存储在Hbase(一个分布式的、面向列的开源数据库)中,同时将一些用于检索的数据如微服务名称、业务标识等存储在ES(ElasticSearch,一个分布式多用户能力的全文搜索引擎)中。
具体地,如图11所示,微服务Api模块嵌入到用户服务的微服务框架中,用于构造需要上报至实时计算集群的数据。参考opentracing规范,对用户发出的针对业务服务的服务请求,首先生成一个trace_id,同时每次RPC,生成一个上报的数据span。其中:
trace代表一次完整的请求链路过程,trace_id可以由ip地址(InternetProtocolAddress,互联网协议地址)、随机数、tid(线程标识)、seq(请求的RPC的递增序列)组成;
span_ctx代表跨服务传输的上下文信息,含有trace_id、span_id、parent_id和采样标志等信息,span_id为表征调用跨度的跨度标识,parent_id为当前span的前一个span的span_id;
span代表埋点上报的数据结构体,可以含有trace_id、span_id、parent_id、caller(主调微服务)、callee(被调微服务)、ifc_name(微服务的接口名称)、result(调用结果)、time(时间)以及业务扩展等信息。
在一种可行的实施方式中,在微服务Api模块生成链路数据,如图11中所示的Span1c、Span1s、Span1.1c、Span1.1s。
具体地,实时计算集群主要用来就近处理上报的链路数据,首先是根据链路数据按照跨度标识(span_id)进行汇总,得到一个调用数据,该调用数据对应于一个被调用的微服务。
在本申请实施例提供的方法中,为了处理微服务调用数据,将微服务调用关系进行如图12所示的拆分方式:针对生成业务服务的微服务调用树这一最终目的,根据调用树的树结构,可以将树形结构拆分成独立的多个边,其中每条边最多仅需三个调用数据。图12中,例如SvrA:ifc1表示微服务A的接口1。在本申请实施例中,ifc等效于interface(接口)。
如果最终存储的是正向调用树,常见的,正向调用树采用结构[root,(a,b)]进行存储,root、a和b均为树的节点,在存储如图13所示的两条边时可以表示为:
[appid_Svr1:interface_1,(Svr1:interface_1,Svr2:interface_1)];
[appid_Svr1:interface_1,(Svr1:interface_1,Svr3:interface_1)];
其中,appid_Svr1:interface_1表征名为appid的业务服务的调用树的根节点微服务。
在本申请实施例提供的方法中,结合Hbase中的数据存储格式,将正向调用树的存储结构优化成由[root,(A,B)]组成;
在存储如图13所示的两条边时可以表示为:
Day_appid_Svr1_interface_1:[(Svr1:interface_1,Svr2:interface_1),(Svr1:interface_1,Svr3:interface_1)];
其中root(如Day_appid_Svr1_interface_1)可以指向唯一的一个调用树,A和B分别为一个调用链路;将从Svr1:interface_1出发的两条调用链路存储在同一个ColumnFamilies(列家族)中,列key可以采用if:Svr1_interface1。
在记录某一个微服务节点的调用情况时,可以采用如下类似结构进行存储:
Day_appid_Svr1_interface_1_tree:
[Day_appid_Svr1_interface_1,Day_appid_Svr1_interface2]
上述结构既可以知道一棵调用树树有哪些微服务节点,也可以查询某个微服务节点被哪些调用树调用了。
如果最终存储的是反向调用树,可以拉取正向调用树的数据后进行边的逆向处理即可。
以上是对树结构的拆分设计,图14所示的是具体的实时计算流程图算法,相当于设计过程的逆向过程,其中缓存A用来缓存没有查找到根节点的调用数据,缓存B用来缓存没有查找到父节点的调用数据。具体过程可以参照图2所示的实施例所提供的方法,此处不再赘述。需要说明的是,当遍历缓存A的对应的微服务节点时,将缓存A对应的微服务节点作为图14中所示的curSpan,进而确定缓存A对应的微服务节点的前向调用关系和后向调用关系;当遍历缓存B对应的微服务节点时,是将新的span对应的微服务节点(也即curRoot)作为curSpan,也即方法实施例中所述的确定当前微服务的调用关系。
具体地,异步离线计算集群主要用来解决跨地区的调用数据。实时计算的方式,很好的解决了同一地区的RPC调用的监管,对于少量的跨集群调用,需要对各地区的数据进行汇聚。异步计算集群通过识别出这部分跨集群的数据。将它们进行单独处理。如图15所示,跨集群的调用数据同样可以分为两类,一时暂未查找到对应的根节点,二是暂未查找到对应的父节点,例如Span2、Span2.1在上海地区的集群内属于没有对应的根节点的调用数据,Span2.1.1在深圳地区集群内属于没有对应的父节点的调用数据。进一步地,可以对跨集群的调用数据进行过滤,如采用LRU(Least recently used,最近最少使用)淘汰算法,若对跨集群的调用数据被淘汰,则触发离线补偿机制,通过汇聚一定时间内的调用数据异步计算调用树。
具体地,管理端主要方便后台人员查看业务服务的调用链路和单个微服务的调用情况。示例性的,如图16所示,可以根据trace_id查询某个特定的业务服务的多个微服务的调用链路,以及各微服务的在该业务服务中的单词调用关系和调用情况。示例性的,还可以如图9所示的微服务接口级别的调用关系。
本申请实施例还提供了一种微服务调用数据处理装置1700,如图17所示,所述装置1700可以包括:
当前调用数据获取模块1710,用于获取在当前微服务调用过程中产生的当前调用数据,所述当前微服务是响应于针对业务服务的服务请求而被调用的微服务;
历史调用数据确定模块1720,用于确定缓存的所述业务服务对应的历史调用数据集合;所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系处于第一预设状态;
调用关系确定模块1730,用于根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新;所述目标微服务包括所述当前微服务和所述历史微服务。
在本申请的一个实施例中,所述当前调用数据获取模块1710可以包括:
调用单元,用于响应于针对业务服务的服务请求,执行对所述当前微服务的目标远程过程调用;
数据生成单元,用于在执行所述目标远程过程调用的起始时刻和终止时刻,对应生成第一调用数据和第二调用数据;
数据上报单元,用于根据所述第一调用数据和所述第二调用数据,确定所述当前微服务的当前调用数据;所述当前调用数据包括对应于所述服务请求的业务标识和表征调用跨度的跨度标识。
在本申请的一个实施例中,所述调用关系确定模块1730可以包括:
第一集合确定单元,用于根据所述历史调用数据集合,确定没有根节点的历史微服务,得到第一历史微服务集合;
第一服务节点类型确定单元,用于确定所述当前微服务在所述业务服务中的第一服务节点类型;
父子节点确定单元,用于在所述第一服务节点类型为根节点时,根据所述历史调用数据集合查找所述第一历史微服务集合中每个第一历史微服务对应的父节点微服务和子节点微服务;
调用关系第一确定单元,用于若查找到,则根据所述当前微服务以及各所述第一历史微服务对应的父节点微服务和子节点微服务,确定各所述第一历史微服务对应的调用关系;所述调用关系包括前向调用关系和后向调用关系。
在本申请的一个实施例中,所述调用关系确定模块1730可以包括:
第二服务节点类型确定单元,用于在所述第一服务节点类型不是根节点时,确定各历史微服务在所述业务服务中的第二服务节点类型;
历史调用数据集合第一更新单元,用于在所述第二服务节点类型均不为根节点时,根据所述当前调用数据更新所述历史调用数据集合。
在本申请的一个实施例中,所述调用关系确定模块1730可以包括:
父节点确定单元,用于当所述第二服务节点类型包括根节点时,根据所述历史调用数据集合查找所述当前微服务对应的父节点微服务;
前向调用关系确定单元,用于若查找到,则根据所述根节点对应的根节点微服务、所述当前微服务和所述当前微服务对应的父节点微服务,确定所述当前微服务的前向调用关系。
在本申请的一个实施例中,所述调用关系确定模块1730可以包括:
第二集合确定单元,用于若未查找到,则根据所述历史调用数据集合,确定没有父节点的历史微服务,并基于所述没有父节点的历史微服务得到第二历史微服务集合;
子节点确定单元,用于在所述第二历史微服务集合中查找所述当前微服务对应的子节点微服务;
后向调用关系确定单元,用于若查找到,则根据所述根节点对应的根节点微服务、所述当前微服务和所述当前微服务对应的子节点微服务,确定所述当前微服务的后向调用关系;
历史调用数据集合更新单元,用于根据所述当前调用数据和所述子节点微服务对应的调用数据,更新所述历史调用数据集合。
在本申请的一个实施例中,所述装置1700还可以包括:
微服务调用树确定单元,用于确定所述业务服务对应的微服务调用树;
微服务调用树更新单元,用于根据所述调用关系未知的微服务在所述业务服务中的调用关系,更新所述微服务调用树。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的一种微服务调用数据处理方法。
图18示出了一种用于实现本申请实施例所提供的一种微服务调用数据处理方法的设备的硬件结构示意图,所述设备可以参与构成或包含本申请实施例所提供的装置或系统。如图18所示,设备18可以包括一个或多个(图中采用1802a、1802b,……,1802n来示出)处理器1802(处理器1802可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1804、以及用于通信功能的传输装置1806。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图18所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备18还可包括比图18中所示更多或者更少的组件,或者具有与图18所示不同的配置。
应当注意到的是上述一个或多个处理器1802和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备18(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1804可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的方法对应的程序指令/数据存储装置,处理器1802通过运行存储在存储器1804内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种微服务调用数据处理方法。存储器1804可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1804可进一步包括相对于处理器1802远程设置的存储器,这些远程存储器可以通过网络连接至设备18。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备18的通信供应商提供的无线网络。在一个实例中,传输装置1806包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1806可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备18(或移动设备)的用户界面进行交互。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于服务器之中以保存用于实现方法实施例中一种微服务调用数据处理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的一种微服务调用数据处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施方式中提供的方法。
由上述本申请提供的一种微服务调用数据处理方法、装置、介质及设备的实施例可见,
本申请提供了一种实时确定微服务调动关系的方法,对于获取到的单个当前微服务的当前调用数据,结合缓存的历史调动数据集合,所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系未知,确定当前微服务和历史微服务可能存在的调用关系,也即通过对单个微服务的调用数据的实时处理,不断更新业务服务的微服务调用树,可以更为快速地展示出业务服务的局部或全部调用链路,避免等待调用数据汇集带来的处理效率低下,同时能够快速记录同一微服务的调用情况,进一步地,还可以和离线方式结合,确定不同微服务集群之间的调用情况,便于后端人员的监管和维护。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种微服务调用数据处理方法,其特征在于,所述方法包括:
获取在当前微服务调用过程中产生的当前调用数据,所述当前微服务是响应于针对业务服务的服务请求而被调用的微服务;
确定缓存的所述业务服务对应的历史调用数据集合;所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系处于第一预设状态;
根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新;所述目标微服务包括所述当前微服务和所述历史微服务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新,所述目标微服务包括所述当前微服务和所述历史微服务,包括:
根据所述历史调用数据集合,确定没有根节点的历史微服务,得到第一历史微服务集合;
确定所述当前微服务在所述业务服务中的第一服务节点类型;
在所述第一服务节点类型为根节点时,根据所述历史调用数据集合查找所述第一历史微服务集合中每个第一历史微服务对应的父节点微服务和子节点微服务;
若查找到,则根据所述当前微服务以及各所述第一历史微服务对应的父节点微服务和子节点微服务,确定各所述第一历史微服务对应的调用关系;所述调用关系包括前向调用关系和后向调用关系。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一服务节点类型不是根节点时,且各历史微服务在所述业务服务中的第二服务节点类型均不为根节点时,根据所述当前调用数据更新所述历史调用数据集合。
4.根据权利要求1所述的方法,其特征在于,所述根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新,还包括:
当所述当前微服务在所述业务服务中的第一服务节点类型不是根节点,且各所述历史微服务在所述业务服务中的第二服务节点类型包括根节点时,根据所述历史调用数据集合查找所述当前微服务对应的父节点微服务;
若查找到,则根据所述根节点对应的根节点微服务、所述当前微服务和所述当前微服务对应的父节点微服务,确定所述当前微服务的前向调用关系。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若未查找到,则根据所述历史调用数据集合,确定没有父节点的历史微服务,并基于所述没有父节点的历史微服务得到第二历史微服务集合;
在所述第二历史微服务集合中查找所述当前微服务对应的子节点微服务;
若查找到,则根据所述根节点对应的根节点微服务、所述当前微服务和所述当前微服务对应的子节点微服务,确定所述当前微服务的后向调用关系;
根据所述当前调用数据和所述子节点微服务对应的调用数据,更新所述历史调用数据集合。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述业务服务对应的微服务调用树;
根据所述调用关系未知的微服务在所述业务服务中的调用关系,更新所述微服务调用树。
7.根据权利要求1所述的方法,其特征在于,所述获取实时上报的目标微服务的目标调用数据,包括:
响应于针对业务服务的服务请求,执行对所述当前微服务的目标远程过程调用;
在执行所述目标远程过程调用的起始时刻和终止时刻,对应生成第一调用数据和第二调用数据;
根据所述第一调用数据和所述第二调用数据,确定所述当前微服务的当前调用数据;所述当前调用数据包括对应于所述服务请求的业务标识和表征调用跨度的跨度标识。
8.一种微服务调用数据处理装置,其特征在于,所述装置包括:
当前调用数据获取模块,用于获取在当前微服务调用过程中产生的当前调用数据,所述当前微服务是响应于针对业务服务的服务请求而被调用的微服务;
历史调用数据确定模块,用于确定缓存的所述业务服务对应的历史调用数据集合;所述历史调用数据集合中各历史调用数据对应的历史微服务的调用关系处于第一预设状态;
调用关系确定模块,用于根据所述当前调用数据和所述历史调用数据集合,对调用关系处于第一预设状态的目标微服务进行调用关系状态更新;所述目标微服务包括所述当前微服务和所述历史微服务。
9.一种计算机可读机存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至7中任一项所述的一种微服务调用数据处理方法。
10.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行如权利要求1至7中任一项所述的一种微服务调用数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110701928.2A CN115525440A (zh) | 2021-06-24 | 2021-06-24 | 微服务调用数据处理方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110701928.2A CN115525440A (zh) | 2021-06-24 | 2021-06-24 | 微服务调用数据处理方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525440A true CN115525440A (zh) | 2022-12-27 |
Family
ID=84693715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110701928.2A Pending CN115525440A (zh) | 2021-06-24 | 2021-06-24 | 微服务调用数据处理方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115525440A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742900A (zh) * | 2024-02-05 | 2024-03-22 | 北京优特捷信息技术有限公司 | 一种服务调用图的构造方法、装置、设备及存储介质 |
-
2021
- 2021-06-24 CN CN202110701928.2A patent/CN115525440A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742900A (zh) * | 2024-02-05 | 2024-03-22 | 北京优特捷信息技术有限公司 | 一种服务调用图的构造方法、装置、设备及存储介质 |
CN117742900B (zh) * | 2024-02-05 | 2024-05-14 | 北京优特捷信息技术有限公司 | 一种服务调用图的构造方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112118565B (zh) | 多租户服务灰度发布方法、装置、计算机设备和存储介质 | |
US10481948B2 (en) | Data transfer in a collaborative file sharing system | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
US20170064027A1 (en) | Data caching in a collaborative file sharing system | |
CN106790718A (zh) | 服务调用链路分析方法及系统 | |
CN111090699A (zh) | 业务数据的同步方法和装置、存储介质、电子装置 | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN105653425A (zh) | 基于复杂事件处理引擎的监控系统 | |
CN112491609B (zh) | 基于业务服务的系统应用架构发现方法及系统 | |
CN113760453B (zh) | 容器镜像分发系统及容器镜像推送、拉取和删除方法 | |
CN105183470A (zh) | 一种自然语言处理系统化服务平台 | |
CN114090388A (zh) | 信息获取方法、服务器集群、服务器及设备 | |
CN109981745A (zh) | 一种日志文件处理方法及服务器 | |
CN114265680A (zh) | 一种海量数据处理方法、装置、电子设备及存储介质 | |
CN115115329A (zh) | 一种面向智能生产线的制造中间件及云制造架构 | |
CN114745295A (zh) | 数据采集方法、装置、设备和可读存储介质 | |
CN112181678A (zh) | 业务数据的处理方法、装置和系统、存储介质、电子装置 | |
CN115883407A (zh) | 一种数据采集方法、系统、设备及存储介质 | |
CN116204239A (zh) | 业务处理方法、装置和计算机可读存储介质 | |
WO2019163912A1 (ja) | ネットワークシステム、トポロジ管理方法、およびプログラム | |
CN115525440A (zh) | 微服务调用数据处理方法、装置、介质及设备 | |
CN116974948A (zh) | 业务系统测试方法、系统、设备和介质 | |
CN114817389A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN108683533B (zh) | 配置更新方法、配置更新的响应方法及服务器、系统 | |
Ullah et al. | IoT resource management using direct discovery mechanism in OCF framework |
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 |