CN117311854B - 微服务治理方法、装置、电子设备及可读取存储介质 - Google Patents

微服务治理方法、装置、电子设备及可读取存储介质 Download PDF

Info

Publication number
CN117311854B
CN117311854B CN202311597182.0A CN202311597182A CN117311854B CN 117311854 B CN117311854 B CN 117311854B CN 202311597182 A CN202311597182 A CN 202311597182A CN 117311854 B CN117311854 B CN 117311854B
Authority
CN
China
Prior art keywords
plug
service
governance
sub
file
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.)
Active
Application number
CN202311597182.0A
Other languages
English (en)
Other versions
CN117311854A (zh
Inventor
陈灏
殷成健
陆家靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Shouqianba Internet Technology Co ltd
Nanjing Yanli Technology Co ltd
Original Assignee
Shanghai Shouqianba Internet Technology Co ltd
Nanjing Yanli 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 Shanghai Shouqianba Internet Technology Co ltd, Nanjing Yanli Technology Co ltd filed Critical Shanghai Shouqianba Internet Technology Co ltd
Priority to CN202311597182.0A priority Critical patent/CN117311854B/zh
Publication of CN117311854A publication Critical patent/CN117311854A/zh
Application granted granted Critical
Publication of CN117311854B publication Critical patent/CN117311854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种微服务治理方法、装置、电子设备及可读取存储介质,涉及微服务技术领域。该方法包括:确定远程调用框架对应的插件文件;其中,插件文件中包括至少一种服务治理子插件;在远程调用框架对应的目标设备中插入代理程序的调用参数;其中,调用参数与插件文件具有关联性;基于调用参数查询插件文件,以调用插件文件中的服务治理子插件。通过代理程序的形式在目标设备上插入相应的调用参数,根据调用参数调用远程调用框架对应的插件文件,能够在远程调用框架的基础上实现多种微服务治理功能,无需对原有的远程调用框架进行重新开发,将中间件与业务方之间解耦,减少使用成本和接入成本,有利于维持线上微服务的稳定性以及业务的持续性。

Description

微服务治理方法、装置、电子设备及可读取存储介质
技术领域
本申请涉及微服务技术领域,具体而言,涉及一种微服务治理方法、装置、电子设备及可读取存储介质。
背景技术
微服务是一种架构,将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。
目前,在构建微服务治理的框架时,通常是在开源的框架上进行二次开发。二次开发需要重新撰写代码和解决协议问题,并且,在使用过程中需要以升级软件开发工具包的形式进行业务更新,导致构建和使用过程的开发成本、升级成本较高,无法适用于多种不同的应用场景。
发明内容
有鉴于此,本申请实施例的目的在于提供一种微服务治理方法、装置、电子设备及可读取存储介质,以改善现有技术中存在的微服务治理框架构建和使用过程的开发成本、升级成本较高的问题。
为了解决上述问题,第一方面,本申请实施例提供了一种微服务治理方法,所述方法包括:
确定远程调用框架对应的插件文件;其中,所述插件文件中包括至少一种服务治理子插件;
在所述远程调用框架对应的目标设备中插入代理程序的调用参数;其中,所述调用参数与所述插件文件具有关联性;
基于所述调用参数查询所述插件文件,以调用所述插件文件中的所述服务治理子插件。
在上述实现过程中,能够根据原有的远程调用框架的微服务治理需求确定对应的插件文件,并通过代理程序的形式在目标设备上插入相应的调用参数,以根据调用参数调用远程调用框架对应的插件文件。能够在原有的远程调用框架基础上实现多种微服务治理功能,无需对原有的远程调用框架进行重新开发,减少了开发所需的时间成本和人工成本,且使用过程中能够将中间件与业务方之间解耦,减少使用成本和接入成本,有利于维持线上微服务的稳定性以及业务的持续性,且适用于多种不同的业务场景。
可选地,所述确定远程调用框架对应的插件文件,包括:
确定所述远程调用框架对应的服务治理功能,所述服务治理功能包括服务注册发现、服务路由、流量治理、动态配置中的至少一种;
基于每种所述服务治理功能生成对应的所述服务治理子插件,以根据一个或多个服务治理子插件整合得到所述插件文件。
在上述实现过程中,可以根据远程调用框架实际的功能需求确定所需的服务治理功能,再根据每种服务治理功能生成相应的服务治理子插件,从而整合一个或多个服务治理子插件得到相应的插件文件,以通过调用插件文件实现相应的服务治理功能。无需对原有的远程调用框架进行重新开发,根据实际的需求预设插件文件即可以实现相应的微服务治理功能,有效地减少了开发所需的时间成本和人工成本。
可选地,所述基于每种所述服务治理功能生成对应的所述服务治理子插件,包括:
根据每种所述服务治理功能确定插件架构;其中,所述插件架构中设置有对应的切入点;
获取每种所述服务治理功能对应的配置数据;
确定基于所述配置数据执行处理的拦截器;
基于所述切入点将所述拦截器设置在所述插件架构中,得到所述服务治理子插件。
在上述实现过程中,为了实现稳定的微服务治理功能,可以根据每种服务治理功能实际的情况确定插件架构、插件架构中设置的切入点以及对应的配置数据,从而确定根据配置数据执行相应处理,以实现相应服务治理功能的拦截器,并基于切入点将拦截器设置在相应的插件架构中,得到具有服务治理功能的服务治理子插件。能够根据服务治理功能的实际情况设置相应的服务治理子插件,有效地提高了服务治理子插件的可行性。
可选地,所述获取每种所述服务治理功能对应的配置数据,包括:
在所述远程调用框架对应的所述代理程序中定义启动服务;基于所述启动服务确定目标功能链接;根据所述目标功能链接获取所述服务治理功能对应的所述配置数据;和/或
在所述代理程序中定义配置拦截器;基于所述配置拦截器获取微服务管理工具发送的所述服务治理功能对应的所述配置数据。
在上述实现过程中,由于多种服务治理功能之间的差异,可以通过不同的方式获取对应的配置数据。可以在定义相应的启动服务以确定与配置中心进行数据传输的目标功能连接,以从配置中心中获取服务治理功能对应的配置数据并加载到相应的内存中;也可以采用无代理模式,通过定义的配置拦截器从相应的微服务管理工具中获取对应的服务治理功能对应的配置数据等。能够基于每种服务治理功能的实际情况,选择合适的方式获取相应的配置数据,有效地提高了配置数据的获取效率和有效性。
可选地,所述方法还包括:
根据更新服务治理子插件确定更新插件文件;
基于所述调用参数查询到所述插件文件;
根据所述更新插件文件对所述插件文件进行替换。
在上述实现过程中,考虑到使用过程中,存在功能需求产生变化的实际情况,因此,可以对服务治理子插件进行更新,以确定相应的更新服务治理子插件以及对应的更新插件文件,并基于调用参数查询到原有的插件文件,以基于更新插件文件对原有的插件文件进行替换,无需依赖软件开发工具包即能够实现业务服务的升级与更新。能够基于业务的实时功能需求提供相应的服务治理能力,减小了施工过程中的升级和维护成本,提高了微服务治理的实时性和有效性。
可选地,其中,所述更新服务治理子插件通过以下方式生成:
获取所述服务治理子插件的更新需求;其中,所述更新需求包括升级需求、修改需求、增减需求中的至少一种;
基于所述更新需求对所述服务治理子插件进行处理,得到所述更新服务治理子插件。
在上述实现过程中,在使用过程中,可以获取业务方基于服务治理子插件产生的更新需求,以根据实际的更新需求对原有的服务治理子插件进行更新、修改、增加、删除等多种相应地处理,得到相应的更新服务插件。可以根据业务的实际需求进行相应地处理,有效地提高了更新服务治理子插件的实时性和可用性。
可选地,所述基于所述调用参数查询所述插件文件,以调用所述插件文件中的所述服务治理子插件,包括:
启动所述远程调用框架对应的所述目标设备;
在所述目标设备中搜索所述调用参数;
若搜索到所述调用参数,则基于所述调用参数查询到对应的所述插件文件;
基于使用需求调用所述插件文件中的一种或多种所述服务治理子插件对目标服务接口进行处理。
在上述实现过程中,进行使用时,通过启动目标设备后自动搜索调用参数以查询到对应的插件文件,从而根据实际的使用需求,调用插件文件中的一种或多种服务治理子插件对目标服务接口进行处理。能够通过参数搜索的方式在使用过程中自动实现相应的服务治理功能,有效地减少了调用成本和对接成本,提高了服务治理功能的响应速度。
第二方面,本申请实施例还提供了微服务治理装置,所述装置包括:确定模块、插入模块和调用模块;
所述确定模块用于确定远程调用框架对应的插件文件;其中,所述插件文件中包括至少一种服务治理子插件;
所述插入模块用于在所述远程调用框架对应的目标设备中插入代理程序的调用参数;其中,所述调用参数与所述插件文件具有关联性;
所述调用模块用于基于所述调用参数查询所述插件文件,以调用所述插件文件中的所述服务治理子插件。
在上述实现过程中,通过确定模块根据原有的远程调用框架的微服务治理需求确定对应的插件文件,通过插入模块以代理程序的形式在目标设备上插入相应的调用参数,通过调用模块根据调用参数调用远程调用框架对应的插件文件,以在原有的远程调用框架基础上实现多种微服务治理功能。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述微服务治理方法中任一实现方式中的步骤。
第四方面,本申请实施例还提供了一种计算机可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述微服务治理方法中任一实现方式中的步骤。
综上所述,通过代理程序的形式在目标设备上插入相应的调用参数,以根据调用参数调用远程调用框架对应的插件文件,能够在原有的远程调用框架基础上实现多种微服务治理功能,无需对原有的远程调用框架进行重新开发,将中间件与业务方之间解耦,减少使用成本和接入成本,有利于维持线上微服务的稳定性以及业务的持续性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种电子设备的方框示意图;
图2为本申请实施例提供的一种微服务治理方法的流程示意图;
图3为本申请实施例提供的一种步骤S200的详细流程示意图;
图4为本申请实施例提供的一种步骤S220的详细流程示意图;
图5为本申请实施例提供的一种步骤S222的详细流程示意图;
图6为本申请实施例提供的另一种微服务治理方法的流程示意图;
图7为本申请实施例提供的一种步骤S400的详细流程示意图;
图8为本申请实施例提供的一种微服务治理装置的结构示意图。
图标:100-电子设备;111-存储器;112-存储控制器;113-处理器;114-外设接口;115-输入输出单元;116-显示单元;600-微服务治理装置;610-确定模块;620-插入模块;630-调用模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请实施例的一部分实施例,而不是全部的实施例。基于本申请实施例的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
目前市面上存在许多类型的开源RPC(Remote Procedure Call,远程过程调用),例如dubbo、spring cloud框架等,但是在业务方实际构建微服务时。如果需要实现一些微服务治理的能力通常需要在开源的代码基础上进行二次的内部开发。例如,对dubbo框架进行二次开发的同时还需要解决与公司现有内部RPC协议兼容问题,且业务方需要重新撰写整体的代码,需要较高的时间成本和人力成本。并且,在使用例如dubbo框架的过程中,由于业务需求的变化,通常都需要以升级SDK(Software Development Kit,软件开发工具包)的形式进行业务更新,导致构建和使用过程的开发成本、升级成本较高,无法适用于多种不同的应用场景。
为了解决上述问题,本申请实施例提供了一种微服务治理方法,应用于电子设备,电子设备可以为个人电脑(Personal Computer,PC)、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等具有逻辑计算功能的电子设备,可以作为微服务的提供方与业务方的其他终端设备通信连接,能够在原有的远程调用框架上自动实现相应的服务治理功能,减少微服务的整体实现成本。
可选地,请参阅图1,图1为本申请实施例提供的一种电子设备的方框示意图。电子设备100可以包括存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115、显示单元116。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子设备100的结构造成限定。例如,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
上述的存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115及显示单元116各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器113用于执行存储器中存储的可执行模块。
其中,存储器111可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器111用于存储程序,处理器113在接收到执行指令后,执行程序,本申请实施例任一实施例揭示的过程定义的电子设备100所执行的方法可以应用于处理器113中,或者由处理器113实现。
上述的处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器,也可以是任何常规的处理器等。
上述的外设接口114将各种输入/输出装置耦合至处理器113以及存储器111。在一些实施例中,外设接口114,处理器113以及存储控制器112可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
上述的输入输出单元115用于提供给用户输入数据。输入输出单元115可以是,但不限于,鼠标和键盘等。
上述的显示单元116在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。在本申请实施例中,显示单元116可以显示目标设备中的多种界面,或是对多种服务治理功能进行管理和查看的业务界面。
本实施例中的电子设备可以用于执行本申请实施例提供的各个微服务治理方法中的各个步骤。下面通过几个实施例详细描述微服务治理方法的实现过程。
请参阅图2,图2为本申请实施例提供的一种微服务治理方法的流程示意图,该方法可以包括步骤S200-S400。
步骤S200,确定远程调用框架对应的插件文件。
其中,插件文件可以为具有多种服务治理功能的完整插件的插件包,可以JAR等数据形式的压缩文件包,远程调用框架可以为多种类型的RPC框架,例如开源的jsonrpc4j框架。插件文件包括至少一种服务治理子插件,服务治理子插件可以为相应的服务治理功能的相关字节码增强的业务逻辑实现文件,可以为远程调用框架提供所需的多种微服务治理功能,例如服务注册发现、服务路由、流量治理、动态配置等。
步骤S300,在远程调用框架对应的目标设备中插入代理程序的调用参数。
其中,可以通过代理程序的形式在目标设备上插入相应的调用参数,代理程序可以为Java Agent,可以在业务服务启动环境变量中会通过定义“-javaagent:/app/hera-agent/agent/hera-agent.jar=agent.service_name=”作为相应的调用参数,即javaagent参数,javaagent参数与插件文件具有关联性,能够通过调用参数确定插件文件的具体位置。
步骤S400,基于调用参数查询插件文件,以调用插件文件中的服务治理子插件。
其中,在需要提供相应的服务治理功能时,可以基于调用参数,即javaagent参数查询相应的插件文件,以在查询到的插件文件中调用一种或多种服务治理子插件,加载服务治理子插件中定义的服务治理相关字节码增强实现类。能够在应用程序启动运行入口方法之前将具有服务治理功能的字节码增强实现类加载到目标设备中运行,实现相应的服务治理功能。
在图2所示的实施例中,能够在原有的远程调用框架基础上实现多种微服务治理功能,无需对原有的远程调用框架进行重新开发,减少了开发所需的时间成本和人工成本,且使用过程中能够将中间件与业务方之间解耦,减少使用成本和接入成本,有利于维持线上微服务的稳定性以及业务的持续性,且适用于多种不同的业务场景。
可选地,请参阅图3,图3为本申请实施例提供的一种步骤S200的详细流程示意图,步骤S200可以包括步骤S210-S220。
步骤S210,确定远程调用框架对应的服务治理功能。
其中,服务治理功能可以包括服务注册发现、服务路由、流量治理、动态配置等一种或多种不同的微服务功能。可以根据业务方的实际需求确定远程调用框架的功能需求,从而确定所需的服务治理功能。
步骤S220,基于每种服务治理功能生成对应的服务治理子插件,以根据一个或多个服务治理子插件整合得到插件文件。
其中,可以预先根据每种服务治理功能撰写或修改生成相应的服务治理子插件,例如,可以是在Skywalking提供的ClassEnhancePluginDefine基础上根据服务治理功能进行异常处理的修改,以得到所需的服务治理子插件,并整合一个或多个服务治理子插件得到相应的插件文件。
需要说明的是,考虑到多种不同类型的业务方的不同使用场景,可以预先生成多种不同的服务治理子插件,并整合得到相应的完整插件的插件文件,能够在不同业务方调用时提供多种不同类型的服务治理功能,满足多种业务方的使用需求。
在图3所示的实施例中,无需对原有的远程调用框架进行重新开发,根据实际的需求预设插件文件即可以实现相应的微服务治理功能,有效地减少了开发所需的时间成本和人工成本。
可选地,对于jsonrpc4j框架等远程调用框架而言,它是一个用于Java应用程序的库,允许创建和处理遵循JSON-RPC协议的远程方法调用。jsonrpc4j框架的主要目标是简化在分布式系统中进行远程调用的过程,通过将方法调用和响应数据转换为JSON格式进行传输,在服务治理能力上没有支持,因此,可以设置服务治理子插件,以实现对应的服务治理功能,以适用于多种不同类型的远程调用框架。
可选地,请参阅图4,图4为本申请实施例提供的一种步骤S220的详细流程示意图,步骤S220可以包括步骤S221-S224。
步骤S221,根据每种服务治理功能确定插件架构。
其中,插件架构可以为基于服务治理功能撰写或修改的代码数据,可以预先基于每一类服务治理功能生成相应的插件架构并存储在架构库中,在后续使用时基于功能类型进行搜索和选择,以获取相应的插件架构进行使用。
需要说明的是,由于插件架构中包含多行代码内容,为了快速地实现相应的功能,插件架构中设置有对应的切入点,切入点可以为代码增强切入点,以及实现服务治理功能的拦截器类功能。
可选地,在java agent当中,可以通过Skywalking Agent的插件体系开发实现jsonrpc4j框架的服务治理相关能力的插件架构。增强插件架构的逻辑可以参考以下的源代码:
public class JsonProxyFactoryBeanInstrumentation extendsClassEnhancePluginDefineV3 {
// 定义需要拦截的类
private static final String ENHANCE_CLASS = "com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean";
// 定义实际调用的拦截器(实现服务治理的地方)
private static final String INVOKE_INTERCEPTOR = "com.wosai.middleware.xxx.JsonProxyFactoryBeanInvokeInterceptor";
private static final String WITNESS_CLASSES = "com.wosai.middleware.xxx.JsonRPCFallbackDefine";
@Override
protected final String[] witnessClasses() {
return new String[]{WITNESS_CLASSES};
}
@Override
protected ClassMatch enhanceClass() {
// 定义jsonrpc4j框架中需要代码增强的原始类
return NameMatch.byName(ENHANCE_CLASS);
}
/定义要拦截类的构造方法,以及对应的拦截器/
@Override
public ConstructorInterceptPoint[] getConstructorsInterceptPoints(){
// 定义
return new ConstructorInterceptPoint[0];
}
/定义要拦截类的实例方法,以及对应的拦截器/
@Override
public InstanceMethodsInterceptV2Point[] getInstanceMethodsInterceptV2Points() {
return new InstanceMethodsInterceptV2Point[]{
new DeclaredInstanceMethodsInterceptV2Point() {
// 定义需要拦截invoke方法
@Override
public ElementMatcher<MethodDescription>getMethodsMatcher() {
return named("invoke");
}
// 定义拦截器的类名
@Override
public String getMethodsInterceptorV2() {
return INVOKE_INTERCEPTOR;
}
@Override
public boolean isOverrideArgs() {
return false;
}
}
};
}
/定义要拦截类的静态方法,以及对应的拦截器/
@Override
public StaticMethodsInterceptV2Point[] getStaticMethodsInterceptV2Points() {
return null;
}
}
步骤S222,获取每种服务治理功能对应的配置数据。
其中,为了实现稳定的微服务治理功能,可以根据每种服务治理功能实际的情况获取对应的配置数据。
可选地,配置数据与服务治理功能的类型相关,若服务治理功能为流量治理,则对应的配置数据可以包括限流熔断配置数据,若服务治理功能为服务路由,则对应的配置数据可以包括服务请求方发起的http请求中header、方法名、环境标识等流量来源参数配置以及服务提供方所属环境、流量权重等出口配置数据。
步骤S223,确定基于配置数据执行处理的拦截器。
其中,为了实现相应的服务治理功能,例如对流量进行限制等,可以根据插件架构生成对应的拦截器,以确定能够基于配置数据执行相应处理的拦截器,例如,拦截器能够以配置数据作为判断条件进行处理,以完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。
步骤S224,基于切入点将拦截器设置在插件架构中,得到服务治理子插件。
其中,可以基于切入点将拦截器设置在相应的插件架构中,以在对应的位置处实现相应的服务治理功能,得到具有服务治理功能的服务治理子插件。
需要说明的是,在实现某些服务治理功能,例如服务注册发现时,可以省去获取配置数据的步骤,直接生成相应的服务治理子插件。
在图4所示的实施例中,能够根据服务治理功能的实际情况设置相应的服务治理子插件,有效地提高了服务治理子插件的可行性。
可选地,请参阅图5,图5为本申请实施例提供的一种步骤S222的详细流程示意图,步骤S222可以包括步骤S2221-S2225。
步骤S2221,在远程调用框架对应的代理程序中定义启动服务。
步骤S2222,基于启动服务确定目标功能链接。
步骤S2223,根据目标功能链接获取服务治理功能对应的配置数据。
其中,由于多种服务治理功能之间的差异,可以通过不同的方式获取对应的配置数据。例如,在服务治理功能为流量治理时,可以通过将sentinel(面向分布式服务架构的高可用流量防护组件)集成在拦截器中以实现服务调用的限流熔断能力,在获取对应的配置数据时,可以在远程调用框架对应的代理程序中定义一个启动服务,例如,可以定义一个BootService的接口实现类,从而根据启动服务定义与配置中心的一个长链接作为目标功能链接,通过请求配置中心的响应中获取该业务服务在服务治理管理平台中配置的限流熔断配置数据,然后在服务启动时,加载到内存中,当配置中心的配置变更后,也会通过目标功能链接推送给配置的订阅者,配置订阅者会根据该目标功能链接重新发起配置请求从而拉取最新配置,实时更新内存中的限流熔断配置数据。
和/或,步骤S2224,在代理程序中定义配置拦截器;
步骤S2225,基于配置拦截器获取微服务管理工具发送的服务治理功能对应的配置数据。
可选地,在服务治理功能为服务发现、服务路由时,对于路由能力,需要让服务调用方获取调用的服务提供方对应的ip+port数据,需要服务注册发现机制,现有技术中,例如dubbo框架通常是通过第三方组件zookeeper、nacos等注册中心进行获取,但是,设置第三方组件会增高成本。而本申请应用部署在k8s(kubernetes,一种应用软件)集群中,k8s本身就可以看作是一个注册中心,可以从k8s中发现这些服务以及针对不同的路由配置,以传输至相应的服务节点上。获取配置数据时,可以借助云原生技术,例如istio的能力,istio默认是使用envoy为代理的一种proxy模式,由envoy去做数据平面,由envoy拦截业务服务的入站和出站流量,但是这种模式会带来更多的资源消耗和性能损耗。为了减少资源消耗和性能损耗,本申请在istio可以采用proxyless(无代理)模式,以istio作为控制平面,通过在java agent中定义相应的配置拦截器,以控制平面下发的服务发现、服务路由等服务治理功能相关的配置数据,在拦截业务方时根据配置数据处理相关路由功能。
可选地,定义的配置拦截器可以在初始化订阅下游服务的客户端时同时向控制平面发起请求,通过解析控制平面下发的xDS数据解析成服务内部需要的路由数据作为配置数据存储到内存中,在服务发起调用的同时根据内存中的配置数据路由到下游服务中。
其中,xDS被称为数据平面API(Application Programming Interface,应用程序接口),可以在代理程序中通过客户端对接这些API,以从控制平面中获取相关数据。
在图5所示的实施例中,能够基于每种服务治理功能的实际情况,选择合适的方式获取相应的配置数据,有效地提高了配置数据的获取效率和有效性。
可选地,请参阅图6,图6为本申请实施例提供的另一种微服务治理方法的流程示意图,该方法还可以包括步骤S510-S530。
步骤S510,根据更新服务治理子插件确定更新插件文件。
其中,考虑到使用过程中,存在功能需求产生变化的实际情况,因此,可以对服务治理子插件进行更新,以确定相应的更新服务治理子插件以及对应的更新插件文件。
需要说明的是,更新服务治理子插件可以通过以下方式生成:获取服务治理子插件的更新需求;其中,更新需求包括升级需求、修改需求、增减需求中的至少一种;基于更新需求对服务治理子插件进行处理,得到更新服务治理子插件。在使用过程中,可以获取业务方基于服务治理子插件产生的更新需求,例如,对服务治理功能进行升级、修改,或者是添加新的服务治理功能、删除某一服务治理功能等,以根据实际的更新需求对原有的服务治理子插件进行更新、修改、增加、删除等多种相应地处理,得到相应的更新服务插件。可以根据业务的实际需求进行相应地处理,有效地提高了更新服务治理子插件的实时性和可用性。
步骤S520,基于调用参数查询到插件文件。
步骤S530,根据更新插件文件对插件文件进行替换。
其中,可以根据调用参数查询到原有的插件文件,以基于更新插件文件对原有的插件文件进行替换,以在相同的内置地址出进行数据更新,无需插入新的调用参数,且无需依赖软件开发工具包即能够实现业务服务的升级与更新。
需要说明的是,在升级时本申请采用静默升级的方式,在开发完新的agent功能后,可以将对应新的更新插件文件上送至对应的云存储空间中,当下一次业务服务发布的时候默认会从云存储空间中拉取最新的更新插件文件包,以减少业务方的升级成本。
在图6所示的实施例中,能够基于业务的实时功能需求提供相应的服务治理能力,减小了施工过程中的升级和维护成本,提高了微服务治理的实时性和有效性。
可选地,请参阅图7,图7为本申请实施例提供的一种步骤S400的详细流程示意图,步骤S400可以包括步骤S410-S440。
步骤S410,启动远程调用框架对应的目标设备。
其中,目标设备可以为使用远程调用框架提供相应服务的JVM(Java VirtualMachine,Java虚拟机)设备,能够在启动环境下实现相应的功能。
步骤S420,在目标设备中搜索调用参数。
其中,在启动目标设备后可以自动搜索调用参数,以确定执行的方法。可选地,若未搜索到相应的调用参数,可以执行原有的入口方法。
步骤S430,若搜索到调用参数,则基于调用参数查询到对应的插件文件。
其中,若搜索到相应的调用参数,则基于调用参数指定的内置地址查询到相应的插件文件。
步骤S440,基于使用需求调用插件文件中的一种或多种服务治理子插件对目标服务接口进行处理。
其中,可以根据实际的使用需求,调用并执行插件文件中的一种或多种服务治理子插件对目标服务接口进行处理。目标服务接口可以为服务治理功能对应的接口。
可选地,使用需求为业务方基于自身的使用场景或功能等确定的功能需求,能够在插件文件中,根据多个服务治理子插件中提供的环境变量定义,确定是否需要使用相应的服务治理子插件,例如,设置开启限流模块-Dhera.sentinel.switch_flag=true等,以在多个服务治理子插件中调用业务方所需的子插件进行使用,以为业务方提供相应的服务治理功能。
需要说明的是,在执行相应方法时,由于服务治理功能都已经通过拦截器在对应的方法处理的切入点上进行了拦截判断处理,对于业务方而言,不需要与治理功能相关的耦合代码开发,因此项目集成难度较低,只需要在启动的环境变量中定义引入相应的插件文件。
可选地,使用拦截器实现相应服务治理功能的方式可以包括:在服务治理功能为流量治理时,可以在远程过程调用框架的服务调用的同时调用服务治理子插件中拦截器的限流熔断的判断逻辑。示例地,在远程过程调用框架的服务调用的是JsonRpcBasicServer.invoke()方法,则信任拦截器定义相应的beforeMethod方法以及handleMethodException方法。当代码执行到拦截器的intercept方法时,会先执行beforeMethod方法,可以通过sentinel判断该请求是否被限流,如果限流了可以针对不同的业务场景去做限流异常的处理,例如,可以根据不同的业务场景自定义handleMethodException方法,通过SPI(Software Process Improvement,软件过程改进)技术将能力赋予业务方自定义实现。在服务治理功能为服务发现、服务路由时,可以发起下游的服务请求,并根据拦截器判断该请求是否需要拦截,若需要拦截,则可以将header、方法名称、环境标志等参数转化为条件字段,基于条件字段对内存中的路由数据进行解析,从而得到符合条件的路由信息,基于路由信息中的EDS(Endpoint Discovery Service,端点服务发现)信息将原请求变更为新请求,若不需要拦截,则直接发起原请求,从而根据原请求或新请求收到相应的响应返回。
可选地,可以提供一个统一的服务治理页面供业务方使用,以供业务方对多种服务治理功能的实际状态进行查看和规则设置。在使用为服务管理工具时,采用的是proxyless的模式,因此对于资源消耗较少。并且,在服务路由获取相应的ip+port数据后,服务提供方与业务方是通过点对点相连,不会再产生额外的接口耗时损耗。
在图7所示的实施例中,能够通过参数搜索的方式在使用过程中自动实现相应的服务治理功能,有效地减少了调用成本和对接成本,提高了服务治理功能的响应速度。
请参阅图8,图8为本申请实施例提供的一种微服务治理装置的结构示意图,微服务治理装置600可以包括确定模块610、插入模块620和调用模块630;
确定模块610用于确定远程调用框架对应的插件文件;其中,插件文件中包括至少一种服务治理子插件;
插入模块620用于在远程调用框架对应的目标设备中插入代理程序的调用参数;其中,调用参数与插件文件具有关联性;
调用模块630用于基于调用参数查询插件文件,以调用插件文件中的服务治理子插件。
在一可选的实施方式中,确定模块610包括功能确定子模块和生成子模块;
功能确定子模块用于确定远程调用框架对应的服务治理功能,服务治理功能包括服务注册发现、服务路由、流量治理、动态配置中的至少一种;
生成子模块用于基于每种服务治理功能生成对应的服务治理子插件,以根据一个或多个服务治理子插件整合得到插件文件。
在一可选的实施方式中,生成子模块具体用于:根据每种服务治理功能确定插件架构;其中,插件架构中设置有对应的切入点;获取每种服务治理功能对应的配置数据;确定基于配置数据执行处理的拦截器;基于切入点将拦截器设置在插件架构中,得到服务治理子插件。
在一可选的实施方式中,生成子模块具体用于:在远程调用框架对应的代理程序中定义启动服务;基于启动服务确定目标功能链接;根据目标功能链接获取服务治理功能对应的配置数据;和/或在代理程序中定义配置拦截器;基于配置拦截器获取微服务管理工具发送的服务治理功能对应的配置数据。
在一可选的实施方式中,微服务治理装置600还可以包括更新模块,用于根据更新服务治理子插件确定更新插件文件;基于调用参数查询到插件文件;根据更新插件文件对插件文件进行替换。
在一可选的实施方式中,更新模块还用于:获取服务治理子插件的更新需求;其中,更新需求包括升级需求、修改需求、增减需求中的至少一种;基于更新需求对服务治理子插件进行处理,得到更新服务治理子插件。
在一可选的实施方式中,调用模块630具体用于:启动远程调用框架对应的目标设备;在目标设备中搜索调用参数;若搜索到调用参数,则基于调用参数查询到对应的插件文件;基于使用需求调用插件文件中的一种或多种服务治理子插件对目标服务接口进行处理。
由于本申请实施例中的微服务治理装置600解决问题的原理与前述的微服务治理方法的实施例相似,因此本实施例中的微服务治理装置600的实施可以参见上述微服务治理方法的实施例中的描述,重复之处不再赘述。
本申请实施例还提供了一种计算机可读取存储介质,可读取存储介质中存储有计算机程序指令,计算机程序指令被一处理器读取并运行时,执行本实施例提供的微服务治理方法中任一项方法中的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种微服务治理方法,其特征在于,所述方法包括:
确定远程调用框架对应的插件文件;其中,所述插件文件中包括至少一种服务治理子插件;
在所述远程调用框架对应的目标设备中插入代理程序的调用参数;其中,所述调用参数与所述插件文件具有关联性;所述目标设备为Java虚拟机设备;
基于所述调用参数查询所述插件文件,以调用所述插件文件中的所述服务治理子插件;
其中,所述确定远程调用框架对应的插件文件,包括:确定所述远程调用框架对应的服务治理功能,所述服务治理功能包括服务注册发现、服务路由、流量治理、动态配置中的至少一种;基于每种所述服务治理功能生成对应的所述服务治理子插件,以根据一个或多个服务治理子插件整合得到所述插件文件;
所述基于每种所述服务治理功能生成对应的所述服务治理子插件,包括:根据每种所述服务治理功能确定插件架构;其中,所述插件架构中设置有对应的切入点;获取每种所述服务治理功能对应的配置数据;确定基于所述配置数据执行处理的拦截器;基于所述切入点将所述拦截器设置在所述插件架构中,得到所述服务治理子插件;其中,所述拦截器用于以所述配置数据作为判断条件进行处理,处理包括:请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验或程序异常调试。
2.根据权利要求1所述的方法,其特征在于,所述获取每种所述服务治理功能对应的配置数据,包括:
在所述远程调用框架对应的所述代理程序中定义启动服务;基于所述启动服务确定目标功能链接;根据所述目标功能链接获取所述服务治理功能对应的所述配置数据;和/或
在所述代理程序中定义配置拦截器;基于所述配置拦截器获取微服务管理工具发送的所述服务治理功能对应的所述配置数据。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述方法还包括:
根据更新服务治理子插件确定更新插件文件;
基于所述调用参数查询到所述插件文件;
根据所述更新插件文件对所述插件文件进行替换。
4.根据权利要求3所述的方法,其特征在于,其中,所述更新服务治理子插件通过以下方式生成:
获取所述服务治理子插件的更新需求;其中,所述更新需求包括升级需求、修改需求、增减需求中的至少一种;
基于所述更新需求对所述服务治理子插件进行处理,得到所述更新服务治理子插件。
5.根据权利要求1-2中任一项所述的方法,其特征在于,所述基于所述调用参数查询所述插件文件,以调用所述插件文件中的所述服务治理子插件,包括:
启动所述远程调用框架对应的所述目标设备;
在所述目标设备中搜索所述调用参数;
若搜索到所述调用参数,则基于所述调用参数查询到对应的所述插件文件;
基于使用需求调用所述插件文件中的一种或多种所述服务治理子插件对目标服务接口进行处理。
6.一种微服务治理装置,其特征在于,所述装置包括:确定模块、插入模块和调用模块;
所述确定模块用于确定远程调用框架对应的插件文件;其中,所述插件文件中包括至少一种服务治理子插件;
所述插入模块用于在所述远程调用框架对应的目标设备中插入代理程序的调用参数;其中,所述调用参数与所述插件文件具有关联性;所述目标设备为Java虚拟机设备;
所述调用模块用于基于所述调用参数查询所述插件文件,以调用所述插件文件中的所述服务治理子插件;
所述确定模块包括功能确定子模块和生成子模块;所述功能确定子模块用于确定所述远程调用框架对应的服务治理功能,所述服务治理功能包括服务注册发现、服务路由、流量治理、动态配置中的至少一种;所述生成子模块用于基于每种所述服务治理功能生成对应的所述服务治理子插件,以根据一个或多个服务治理子插件整合得到所述插件文件;
所述生成子模块具体用于:根据每种所述服务治理功能确定插件架构;其中,所述插件架构中设置有对应的切入点;获取每种所述服务治理功能对应的配置数据;确定基于所述配置数据执行处理的拦截器;基于所述切入点将所述拦截器设置在所述插件架构中,得到所述服务治理子插件;其中,所述拦截器用于以所述配置数据作为判断条件进行处理,处理包括:请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验或程序异常调试。
7.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-5中任一项所述方法中的步骤。
8.一种计算机可读取存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-5任一项所述方法中的步骤。
CN202311597182.0A 2023-11-28 2023-11-28 微服务治理方法、装置、电子设备及可读取存储介质 Active CN117311854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311597182.0A CN117311854B (zh) 2023-11-28 2023-11-28 微服务治理方法、装置、电子设备及可读取存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311597182.0A CN117311854B (zh) 2023-11-28 2023-11-28 微服务治理方法、装置、电子设备及可读取存储介质

Publications (2)

Publication Number Publication Date
CN117311854A CN117311854A (zh) 2023-12-29
CN117311854B true CN117311854B (zh) 2024-02-13

Family

ID=89288716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311597182.0A Active CN117311854B (zh) 2023-11-28 2023-11-28 微服务治理方法、装置、电子设备及可读取存储介质

Country Status (1)

Country Link
CN (1) CN117311854B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110062043A (zh) * 2019-04-16 2019-07-26 杭州朗和科技有限公司 服务治理方法、服务治理装置、存储介质及电子设备
CN115878207A (zh) * 2021-09-27 2023-03-31 华为云计算技术有限公司 一种微服务治理方法、装置及系统
CN116204239A (zh) * 2021-12-01 2023-06-02 腾讯科技(深圳)有限公司 业务处理方法、装置和计算机可读存储介质
CN116680003A (zh) * 2023-05-17 2023-09-01 经纬恒润(天津)研究开发有限公司 前端插件化系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110062043A (zh) * 2019-04-16 2019-07-26 杭州朗和科技有限公司 服务治理方法、服务治理装置、存储介质及电子设备
CN115878207A (zh) * 2021-09-27 2023-03-31 华为云计算技术有限公司 一种微服务治理方法、装置及系统
CN116204239A (zh) * 2021-12-01 2023-06-02 腾讯科技(深圳)有限公司 业务处理方法、装置和计算机可读存储介质
CN116680003A (zh) * 2023-05-17 2023-09-01 经纬恒润(天津)研究开发有限公司 前端插件化系统

Also Published As

Publication number Publication date
CN117311854A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
CN109547570B (zh) 服务注册方法、装置、注册中心管理设备及存储介质
US10091086B2 (en) System and method for providing an application programming interface manager for use with a service bus runtime
US9497274B2 (en) Extending functionality of web-based applications
US7305672B2 (en) Dynamic software update system, method and program product
US7418501B2 (en) Dynamic extension of network-accessible services
US7526482B2 (en) System and method for enabling components on arbitrary networks to communicate
US20190132276A1 (en) Unified event processing for data/event exchanges with existing systems
EP3197122B1 (en) Method of forwarding in-application traffic on smart mobile terminal
US9323587B2 (en) Method and system for automatic detecting and resolving APIs
EP3823253B1 (en) Apparatus, computer program product and data processing method for a mini app
GB2520246A (en) Method for accessing business object resources and machine-to-machine communication environment
CN112311786A (zh) 一种服务请求处理方法、装置、存储介质及计算设备
CN111190591A (zh) 界面展示方法、数据处理方法、装置、终端及服务器
CN111857733A (zh) 一种业务环境的构建方法、装置、系统以及可读存储介质
CN112235378B (zh) 数据更新方法、装置、存储介质及电子设备
US7954085B2 (en) Support for multiple interface versions
CN109981546B (zh) 获取应用模块间的远程调用关系的方法和装置
CN116233217B (zh) 基于路由的页面跳转方法、装置、电子设备及存储介质
JP2005228183A (ja) プログラム実行方法、および、プログラム実行のための計算機システム
CN117311854B (zh) 微服务治理方法、装置、电子设备及可读取存储介质
US7792921B2 (en) Metadata endpoint for a generic service
US8499023B1 (en) Servlet-based grid computing environment using grid engines and switches to manage resources
CN112905273A (zh) 一种服务调用方法和装置
US7367029B2 (en) Method and system for handling data
CN117527880B (zh) 消息管理方法、装置、电子设备及计算机可读取存储介质

Legal Events

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