CN115904543A - 基于异构服务框架的服务实现方法、装置、设备和介质 - Google Patents

基于异构服务框架的服务实现方法、装置、设备和介质 Download PDF

Info

Publication number
CN115904543A
CN115904543A CN202211678748.8A CN202211678748A CN115904543A CN 115904543 A CN115904543 A CN 115904543A CN 202211678748 A CN202211678748 A CN 202211678748A CN 115904543 A CN115904543 A CN 115904543A
Authority
CN
China
Prior art keywords
service
probe
heterogeneous
application
framework
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211678748.8A
Other languages
English (en)
Inventor
张冀
王灿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information 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 Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202211678748.8A priority Critical patent/CN115904543A/zh
Publication of CN115904543A publication Critical patent/CN115904543A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供一种基于异构服务框架的服务实现方法、装置、设备和介质,其中,基于异构服务框架的应用服务实现方法包括:在应用侧接入探针,并在应用侧的启动脚本中增加探针的配置文件,配置文件中预设有异构服务框架的数据面的应用服务的地址,探针基于应用服务的地址与数据面进行数据交互。通过本公开实施例,可以动态修改多个服务提供者和消费者的注册、发现、调用、路由、流控等动作的底层代码逻辑,重置到一个统一的实现架构上,实现了在对应用开发方无侵入的情况下,全自动化地实现异构服务框架的统一治理,并且不引入任何新的潜在故障节点,提升了异构服务框架的可靠性和融合性。

Description

基于异构服务框架的服务实现方法、装置、设备和介质
背景技术
目前,软件架构模式经历了从单体架构、SOA架构到微服务架构的演化。随着移动互联网规模的不断扩大,敏捷开发、持续交付等DevOps理论的发展,以及容器技术的成熟,微服务架构已经成为未来应用现代化演进的主要方向。微服务架构将复杂臃肿的单体应用进行细粒度的服务化拆分,每个拆分出来的服务各自独立打包部署,并交由小团队进行开发和运维,极大地提高了应用交付的效率,并且能够更精细地对***容量进行规划,降低总体成本。在微服务中,每项服务都是隔离的,单个服务失败不会引起整个***的崩溃,因此也极大提升了软件***的可靠性。
在相关技术中,随着微服务架构模式的流行,市场上涌现出大量优秀的微服务框架,如Spring Boot、Spring Cloud、Micronaut等,国内也出现Dubbo、Motan、SofaStack、ServiceComb等服务框架,以及二次开发封装的Spring Cloud for Alibaba、Spring Cloudfor Tecent等框架。在微服务架构模式下,服务之间的网络通信可以采用多种协议,如四层的TCP(Transmission Control Protocol,传输控制协议)/UDP(User Datagram Protocol,用户数据协议),或七层的HTTP(Hypertext Transfer Protocol,超文本传输协议)/HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议),或基于两者之上的私有协议。为减少网络传输的数据量,减少带宽消耗和网络传输时间,通信过程中又会通过各种序列化方法对数据进行压缩,比如常见的JSON序列化、Java对象序列化以及Protobuf序列化等。
但是,这种微服务框架百花齐放的现状,对企业的技术选型和统一管理造成困难,并且影响了***间融合协作的效率。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种基于异构服务框架的服务实现方法、装置、设备和介质,用于至少在一定程度上克服由于相关技术的限制和缺陷而导致的微服务融合差的问题。
根据本公开实施例的第一方面,提供一种基于异构服务框架的应用服务实现方法,包括:在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互。
在本公开的一种示例性实施例中,还包括:响应于所述应用侧的启动指令,加载所述探针;触发所述探针动态扫描所述应用侧的实现类;基于所述动态扫描的结果在所述实现类中植入所述探针的指定代码段,所述指定代码段被执行时能够实现获取注册中心的服务的请求地址、发送请求和解析响应结果中的至少一种。
在本公开的一种示例性实施例中,还包括:确定所述探针可拦截的扫描类的框架和实现方法;响应于所述框架和/或所述实现方法的增删操作,对所述配置文件进行更新;通过所述探针拉取更新后的配置文件。
在本公开的一种示例性实施例中,还包括:通过所述探针拦截针对应用服务的注册信息,所述注册信息包括应用服务的名称、服务内容信息、地址信息、端口信息、时间戳和注册中心标识中的至少一种;解析所述注册地址以获取所述应用服务的地址;将所述应用服务的地址注册到所述异构服务框架的控制面。
在本公开的一种示例性实施例中,还包括:在所述应用服务的消费方接入所述探针后,通过所述探针拦截由所述消费方发送的方法调用;在所述方法调用的原始代码的第一指定位置***动态增强的代码逻辑,所述第一指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在本公开的一种示例性实施例中,还包括:在所述应用服务的提供方接入所述探针后,通过所述探针拦截由所述提供方发送的方法调用;在所述方法调用的原始代码的第二指定位置***动态增强的代码逻辑,所述第二指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在本公开的一种示例性实施例中,还包括:在所述异构服务框架的调用侧和服务端均接入所述探针后,通过所述探针拦截从所述调用侧请求到所述服务端的协议;在拦截所述协议的原始代码的第三指定位置***动态增强的代码逻辑,所述第三指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在本公开的一种示例性实施例中,还包括:在所述异构服务框架的调用链路上,通过所述探针拦截序列化方式,所述异构服务框架的调用侧的序列化方式与所述异构服务框架的服务端的序列化方式互为可逆过程;在拦截所述序列化方式的原始代码的第四指定位置***动态增强的代码逻辑,所述第四指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
根据本公开实施例的第二方面,提供一种基于异构服务框架的应用服务实现装置,包括:接入模块,设置为在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互。
根据本公开的第三方面,提供一种电子设备,包括:存储器;以及耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上述任意一项所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述任意一项所述的基于异构服务框架的应用服务实现方法。
本公开实施例,通过在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互,可以动态修改多个服务提供者和消费者的注册、发现、调用、路由、流控等动作的底层代码逻辑,重置到一个统一的实现架构上,实现了在对应用开发方无侵入的情况下,全自动化地实现异构服务框架的统一治理,并且不引入任何新的潜在故障节点,提升了异构服务框架的可靠性和融合性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本发明实施例的业务指标数据的开发方案的示例性***架构的示意图;
图2是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的流程图;
图3是本公开示例性实施例中另一种基于异构服务框架的应用服务实现方法的流程图;
图4是本公开示例性实施例中另一种基于异构服务框架的应用服务实现方法的流程图;
图5是本公开示例性实施例中另一种基于异构服务框架的应用服务实现方法的流程图;
图6是本公开示例性实施例中另一种基于异构服务框架的应用服务实现方法的流程图;
图7是本公开示例性实施例中另一种基于异构服务框架的应用服务实现方法的流程图;
图8是本公开示例性实施例中另一种基于异构服务框架的应用服务实现方法的流程图;
图9是本公开示例性实施例中另一种基于异构服务框架的应用服务实现方法的流程图;
图10是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的注册过程的示意图;
图11是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的服务消费方相关的示意图;
图12是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的服务提供方相关的示意图;
图13是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的协议处理的示意图;
图14是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的序列化处理的示意图;
图15是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的探针调用的示意图;
图16是本公开示例性实施例中一种基于异构服务框架的应用服务实现方案的架构示意图;
图17是本公开示例性实施例中一种基于异构服务框架的应用服务实现装置的方框图;
图18是本公开示例性实施例中一种电子设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本发明实施例的业务指标数据的开发方案的示例性***架构的示意图。
如图1所示,***架构100可以包括终端设备101、102、103中的一种或多种,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。
在一些实施例中,本发明实施例所提供的业务指标数据的开发方法一般由服务器105执行,相应地,业务指标数据的开发装置一般设置于服务器105(也可以是终端设备101、102、103)中。在另一些实施例中,某些终端可以具有与服务器设备相似的功能从而执行本方法。
相关技术中,多种微服务框架都有各自的优点和特点,但是必须解决两个基本问题:
1、服务的注册和发现:服务提供者需要通过某种方式,让服务消费者发现自己提供的服务,通常情况下需要借助注册中心实现该功能。服务提供者将自己的服务注册到注册中心,服务消费者到注册中心查询该服务,获取服务地址。在异构服务框架的场景下,多个异构服务框架的注册中心需要相互同步数据并转换格式,才能够发现其他框架下的服务提供者列表。
2、服务的通信和流控:服务消费者发现提供者后,需要发起调用通信,很多情况下需要对通信流量进行控制,比如限流、熔断等。在异构服务框架的场景下,不同框架的服务调用,由于通信协议不同、序列化方式不同,导致无法通信,需要通过某种方式实现服务转换或翻译。
目前已提出的一些解决异构服务框架融合的技术手段都存在一些缺点:
1、通过统一网关实现集中式的服务转换:以两种服务框架A和B为例,框架A将自己需要被框架B访问的服务注册到一个第三方统一网关,框架B的微服务访问网关,在网关上实现两种框架的服务转换。统一网关起到了桥接两种框架的作用,并且在网关上可以做统一流量控制,但是这种方式需要手动维护所有服务提供者和服务消费者的对应关系,增加了运维工作量,也增加了调用方的性能开销,并且网关成为整个***新的潜在故障节点。
2、通过服务网格即代理的方式拦截消息,实现分布式的服务转换:仍然以两种服务框架A和B为例,框架A下存在服务提供者a,框架B下存在服务消费者b。b调用a,b发起的消息被服务网格(即代理)拦截,转换成框架A的格式,由b的代理向a继续发起调用,从而实现两者的通信。这种方式需要同步框架A和框架B的注册中心数据,需要对所有服务框架的注册中心进行改造,并且由于消息拦截导致通信效率较低、延时增大的风险。
针对上述技术问题,本申请提出了一种基于异构服务框架的应用服务实现方案,下面结合附图对本公开示例实施方式进行详细说明。
图2是本公开示例性实施例中一种基于异构服务框架的应用服务实现方法的流程图。
参考图2,基于异构服务框架的应用服务实现方法可以包括:
步骤S202,在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互。
本公开实施例,通过在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互,可以动态修改多个服务提供者和消费者的注册、发现、调用、路由、流控等动作的底层代码逻辑,重置到一个统一的实现架构上,实现了在对应用开发方无侵入的情况下,全自动化地实现异构服务框架的统一治理,并且不引入任何新的潜在故障节点,提升了异构服务框架的可靠性和融合性。
具体地,本公开基于字节码增强技术,将统一治理探针引入到应用的进程,在进程启动时加载探针,动态修改多个服务提供者和消费者的注册、发现、调用、路由、流控等动作的底层代码逻辑,将多个服务框架合并成为一个统一框架。企业在使用了多个服务框架的情况下,无需改造基础设施(如注册中心、负载均衡器、断路器等),无需修改应用代码,即可实现多个框架之间的无缝调用,并统一进行流控管理,如限流、熔断、负载均衡等。
本公开的技术方案从业务应用本身出发,基于宿主在业务进程中的统一治理探针实现代码增强的逻辑,无需增加***的代理层,将复杂的逻辑处理和配置聚合在统一治理探针中,减少代理层的开销和运维负担。
下面,对基于异构服务框架的应用服务实现方法的各步骤进行详细说明。
在本公开的一种示例性实施例中,如图3所示,基于异构服务框架的应用服务实现方法,还包括:
步骤S302,响应于所述应用侧的启动指令,加载所述探针。
步骤S304,触发所述探针动态扫描所述应用侧的实现类。
步骤S306,基于所述动态扫描的结果在所述实现类中植入所述探针的指定代码段,所述指定代码段被执行时能够实现获取注册中心的服务的请求地址、发送请求和解析响应结果中的至少一种。
在上述实施例中,如图10所示,应用A1002接入统一治理探针1004,在应用侧启动脚本中增加探针的启动配置项,探针运行在应用进程中,与应用进程同生命周期。统一治理探针1004内设置有注册中心***、注册中心动态增强、多个注册中心适配器,如图10所示的注册中心A适配器、注册中心B适配器……注册中心N适配器等,但不限于此。
另外,统一治理探针1004配置文件中增加统一治理数据面服务地址,用于探针与统一治理后端***1008的统一治理数据面进行交互,统一治理控制面将相应的策略下发至统一治理数据面,实现周期性拉取配置项和上报注册信息,同时动态获取到服务调用治理信息,并将日志上报到消息集群,供后续数据加工处理。
其中,接入统一治理探针的应用在进程启动时,会优先加载探针程序,并动态扫描应用的实现类,其中,类是软件工程上的一个名词“class”,指应用内部承载具体业务逻辑实现的方法集合。
进一步地,探针程序运行后扫描这些方法的集合,基于集合和预定的判断逻辑规则来动态对这些原始业务方法进行代码的动态增强,动态植入探针的代码片段来达到改变原始方法的执行逻辑,后面整个运行逻辑基于增加后的方法体来执行额外的运行时规则来实现灵活控制,包括获取注册中心1006的真实服务的请求地址和发送请求、解析响应结果等,按照探针预定的拦截逻辑识别应用的技术框架、关键实现类和方法,拦截原始方法并进行动态代码增强,实现运行时改变原代码的执行逻辑的效果,这也是本公开能实现异构框架互调用和统一治理的关键因素。
另外,探针可拦截的框架范围和方法列表是可在统一治理数据面进行维护和更新的,所有扫描类和方法均可动态增加和删除,通过探针定时拉取配置的时机获得更新,并通过在后台管控面配置需要被扫描的类(class)和方法的范围,用来给探针做运行时的匹配依据。
在本公开的一种示例性实施例中,如图4所示,基于异构服务框架的应用服务实现方法,还包括:
步骤S402,确定所述探针可拦截的扫描类的框架和实现方法。
步骤S404,响应于所述框架和/或所述实现方法的增删操作,对所述配置文件进行更新。
步骤S406,通过所述探针拉取更新后的配置文件。
在上述实施例中,基于上述实施例,探针和被治理的应用一起运行,可以动态从管控面定时拉取配置,因此管控面上做了属性配置后,探针可以及时地动态地获得最新的配置规则,而不是通过静态文件获得一次性配置,提升了控制应用服务的灵活性。
在本公开的一种示例性实施例中,如图5所示,基于异构服务框架的应用服务实现方法,还包括:
步骤S502,通过所述探针拦截针对应用服务的注册信息,所述注册信息包括应用服务的名称、服务内容信息、地址信息、端口信息、时间戳和注册中心标识中的至少一种。
步骤S504,解析所述注册地址以获取所述应用服务的地址。
步骤S506,将所述应用服务的地址注册到所述异构服务框架的控制面。
在上述实施例中,基于异构服务框架接入统一治理探针,无须改变应用原始的注册中心和服务发现的代码逻辑,由探针接管服务注册和发现的能力实现,统一治理后端***负责维护可支持的注册中心列表和类型识别标识,探针负责注册中心的识别和代码增强,将注册中心的交互信息整合为统一的注册信息推送到统一治理的数据面。其中,统一注册信息要素包括应用名称、服务信息、地址信息、端口信息、时间戳、注册中心标识等,但不限于此。
在本公开的一种示例性实施例中,如图6所示,基于异构服务框架的应用服务实现方法,还包括:
步骤S602,在所述应用服务的消费方接入所述探针后,通过所述探针拦截由所述消费方发送的方法调用。
步骤S604,在所述方法调用的原始代码的第一指定位置***动态增强的代码逻辑,所述第一指定位置包括方法入口、方法出口和异常点中的至少一个。
步骤S606,通过所述数据面将动态增强后的代码逻辑对应的配置5信息反馈至所述探针。
在上述实施例中,在图10所示的基础上,Provider(即应用服务的消费方,简称服务消费方1208)服务相关处理如图12所示,服务消费方1208在接入探针后,需要针对异构服务构造请求并解析服务调用方
返回的结果,期间由统一治理探针1204识别并拦截由服务消费方12080发出的方法调用,统一治理探针1204在服务提供方1202的原始方法基础上进行动态拦截,针对原始代码的关键位置——方法入口、出口和异常三个关键点***动态增强的代码逻辑。
其中,程序运行的最终载体体现在方法method上,方法method的组成包括输入参数、输出参数、方法体、运行时异常等四部分,其中方5法体按执行顺序又可分为方法入口、方法执行体、方法出口、方法异常等环节,统一治理探针1204在动态修改增强代码的同时,需要尽可能避免干扰原始方法的内部执行逻辑,因此最佳增强位置体现在方法的入口和出口环节,这些环境是进行拦截的最佳位置。同时考虑方法可能存
在运行时异常,所以需要关注方法异常,拦截异常信息,保障软件***0的鲁棒性。
具体地,统一治理后端***1206的统一治理数据面负责管理所有可支持的框架列表和识别策略,并通过配置下发的接口反馈给探针。针对服务的治理环节,例如熔断、降级、负载均衡均由框架拦截做增强适配
后再决定是否真正发送到服务提供方1202,这是与上述代码增强逻辑规5则相呼应的,只有增强后的代码才能改变原始方法的执行路径,才可以
实现动态操纵方法。
另外,通过植入增强的代码片段包含方法执行的理想路径,对于不同的方法类型需要执行什么的运行规则是可以通过统一治理控制面进行
控制的,这样方法运行时逻辑可以在外部来调控,例如,方法入口处有0增强的代码逻辑存在,当该方法运行时,通过向后台管控面发送请求获取到适合本方法的执行规则后,入口增强的方法就优先执行的权利,可以决定后续方法执行路径,同时整个调用过程还需要经过协议处理转换为调用方可识别的协议,并进行序列化和反序列化的转换,组装为服务提供方1202可解析的数据格式,最后经过数据传输通道才能到达服务消费方1208。
在本公开的一种示例性实施例中,如图7所示,基于异构服务框架的应用服务实现方法,还包括:
步骤S702,在所述应用服务的提供方接入所述探针后,通过所述探针拦截由所述提供方发送的方法调用。
步骤S704,在所述方法调用的原始代码的第二指定位置***动态增强的代码逻辑,所述第二指定位置包括方法入口、方法出口和异常点中的至少一个。
步骤S706,通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在上述实施例中,在图10所示的基础上,应用服务的提供方(后文简称服务提供方1102)的相关逻辑服务如图11所示,服务提供方1102在接入统一治理探针1104后,需要响应异构服务的请求并作出响应,期间由统一治理探针1104识别并拦截服务的方法调用,在原始方法的基础上进行动态拦截,针对原始代码的关键位置:方法入口、出口和异常三个关键点***动态增强的代码逻辑。服务提供方1102可基于多种框架实现,统一治理后端***1106的统一治理数据面负责管理所有可支持的框架列表和识别策略,并通过配置下发的接口反馈给统一治理探针1104。框架拦截适配后还需要经过协议处理转换为调用方可识别的协议,进行序列化和反序列化的转换,组装为调用方可解析的数据格式,最后经过通信数据传输通道才能到达服务调用方1108。
在本公开的一种示例性实施例中,如图8所示,基于异构服务框架的应用服务实现方法,还包括:
步骤S802,在所述异构服务框架的调用侧和服务端均接入所述探针后,通过所述探针拦截从所述调用侧请求到所述服务端的协议。
步骤S804,在拦截所述协议的原始代码的第三指定位置***动态增强的代码逻辑,所述第三指定位置包括方法入口、方法出口和异常点中的至少一个。
步骤S806,通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在上述实施例中,如图13所示,在服务消费方和服务提供方均接入探针后的协议相关处理1302包括:从调用侧请求到服务端的协议转换由探针识别并拦截协议处理的方法调用;在原始方法的基础上进行动态拦截,针对原始代码的关键位置,譬如方法入口、出口和异常三个关键点***动态增强的代码逻辑;统一治理后端***1304的统一治理数据面负责管理所有可支持的协议列表和识别策略,并通过配置下发的接口反馈给探针。
具体地,探针对应用A的异构协议进行识别,并将识别后的异构协议进行动态转换,即协议A转标准、协议B转标准……协议N转标准等,并进一步地通过序列号和通信处理,将转标准后的协议继续进行反向的动态转换,即标准转协议A、标准转协议B……标准转协议N等,最后发送给应用B进行后置处理。
在本公开的一种示例性实施例中,如图9所示,基于异构服务框架的应用服务实现方法,还包括:
步骤S902,在所述异构服务框架的调用链路上,通过所述探针拦截序列化方式,所述异构服务框架的调用侧的序列化方式与所述异构服务框架的服务端的序列化方式互为可逆过程。
步骤S904,在拦截所述序列化方式的原始代码的第四指定位置***动态增强的代码逻辑,所述第四指定位置包括方法入口、方法出口和异常点中的至少一个。
步骤S906,通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在上述实施例中,如图14所示,序列化相关处理1402包括以下步骤:在异构服务提供方与异构服务消费方的调用链路上,双方使用的序列化方式因所选的技术框架而存在差异,例如,调用端使用MsgPack序列化方式,而服务端使用Hessian序列化,这个过程需要由探针增强的代码接管,并进行动态转换适配;针对每种序列化方式和扫描的原始代码的关键位置(可以选取为方法入口、出口和异常三个关键点),可以从统一治理后端***1404的统一治理的数据面获取,按探针预定的动态代码逻辑***到指定位置。
具体地,识别调用方的序列化类型并进行转化,即序列化A转目标、序列化B转目标……序列化N转目标,并继续通过通信处理进行反序列化,即反序列A为目标、反序列B为目标……反序列N为目标,并交由提供方进行后置处理。其中,序列化和反序列化是互为逆向的过程,执行逻辑相似,最终组装为对方可理解的数据格式,交给数据传输通道完成数据交互。
基于上述实施例,如图15所示,异构服务的应用A1502作为服务消费方,应用B1504作为服务提供方,双方通过统一治理探针增强后的代码逻辑进行互调用和统一治理,能够实现生成服务列表、寻址路由、健康检测、协议转换、序列化、编码、解码、反列化和TCP通信等,但不限于此。
在本公开的实施例中,如图16所示,统一治理探针接入应用实现异构框架统一治理1600从业务应用本身出发,基于宿主在业务进程中的统一治理探针实现代码增强的逻辑,无需增加***的代理层,将复杂的逻辑处理和配置聚合在统一治理探针中,减少代理层的开销和运维负担,具体实施方法如下:
1、应用进程A和应用进程B均接入统一治理探针,在应用侧启动脚本中增加探针的启动配置项,探针运行在应用进程中,与应用进程同生命周期。
2、统一治理探针配置文件中增加统一治理数据面服务地址,用于探针与统一治理数据面进行交互,通过调用拦截和拉配置来实现周期性拉取配置项和上报注册信息,即通过拦截注册服务来获取应用A原始注册中心的注册信息和应用B原始注册中心的注册信息,同时动态获取到服务调用治理信息,并将日志上报到消息集群,供后续数据加工处理,消息集群订阅数据分发***和计算组件,以实现中间数据的写入。
3、接入统一治理探针的应用在进程启动时,会优先加载探针程序,并动态扫描应用的实现类,实现类是软件工程上的一个名词“class”,指应用内部承载具体业务逻辑实现的方法集合。探针程序运行后扫描这些方法的集合,基于集合和预定的判断逻辑规则来动态对这些原始业务方法进行代码增强,动态植入探针的代码片段来达到改变原始方法的执行逻辑,后面整个运行逻辑基于增加后的方法体来执行额外的运行时规则来实现灵活控制,包括获取注册中心的真实服务的请求地址和发送请求、解析响应结果等。按照探针预定的拦截逻辑识别应用的技术框架、关键实现类和方法,拦截原始方法并进行动态代码增强,实现运行时改变原代码的执行逻辑的效果,这也本发明能实现异构框架互调用和统一治理的关键因素。
4、探针可拦截的框架范围和方法列表是可在统一治理数据面进行维护和更新的,统一治理数据面将JOB(任务)发送至定时批处理程序,将元数据信息发送至数据库,接收数据分发***发送的SC(SC命令是XP***中功能强大的DOS命令,SC命令能与"服务控制器"和已安装设备进行通讯)调用和计算组件发送是http调用,数据分发***将链路数据发送至NoSQL,计算组件将指标数据发送至时序数据库。由于所有扫描类和方法均可动态增加和删除,因此,可以通过探针定时拉取配置的时机获得更新,通过在后台的统一治理管控面配置需要被扫描的类(class)和方法的范围,用来给探针做运行时的匹配依据。探针和被治理的应用一起运行,可以动态从管控面定时拉取配置,因此管控面上做了属性配置后,探针可以及时地动态地获得最新的配置规则,而不是通过静态文件获得一次性配置,主要是体现了灵活控制的目的。
其中,拦截注册服务目的是为了获取原始服务注册的地址信息,而这些信息只在原始服务的注册中心中存储。注册服务被拦截后,解析获得原始服务的地址,并注册到本发明用于异构服务统一治理的管控平面,使异构服务获得彼此的地址,这是实现异构服务通讯的基础。调用拦截是指改变原始调用方法的执行规则,统一治理探针通过字节码增强,对于原始调用方法植入新的代码片段,改变了原始的方法执行逻辑,让原始调用路由到探针指定的后端真实服务。
对应于上述方法实施例,本公开还提供一种基于异构服务框架的应用服务实现装置,可以用于执行上述方法实施例。
图17是本公开示例性实施例中一种基于异构服务框架的应用服务实现装置的方框图。
参考图17,基于异构服务框架的应用服务实现装置1700可以包括:
接入模块1702,设置为在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互。
在本公开的一种示例性实施例中,接入模块1702还设置为:响应于所述应用侧的启动指令,加载所述探针;触发所述探针动态扫描所述应用侧的实现类;基于所述动态扫描的结果在所述实现类中植入所述探针的指定代码段,所述指定代码段被执行时能够实现获取注册中心的服务的请求地址、发送请求和解析响应结果中的至少一种。
在本公开的一种示例性实施例中,接入模块1702还设置为:确定所述探针可拦截的扫描类的框架和实现方法;响应于所述框架和/或所述实现方法的增删操作,对所述配置文件进行更新;通过所述探针拉取更新后的配置文件。
在本公开的一种示例性实施例中,接入模块1702还设置为:通过所述探针拦截针对应用服务的注册信息,所述注册信息包括应用服务的名称、服务内容信息、地址信息、端口信息、时间戳和注册中心标识中的至少一种;解析所述注册地址以获取所述应用服务的地址;将所述应用服务的地址注册到所述异构服务框架的控制面。
在本公开的一种示例性实施例中,接入模块1702还设置为:在所述应用服务的消费方接入所述探针后,通过所述探针拦截由所述消费方发送的方法调用;在所述方法调用的原始代码的第一指定位置***动态增强的代码逻辑,所述第一指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在本公开的一种示例性实施例中,接入模块1702还设置为:在所述应用服务的提供方接入所述探针后,通过所述探针拦截由所述提供方发送的方法调用;在所述方法调用的原始代码的第二指定位置***动态增强的代码逻辑,所述第二指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在本公开的一种示例性实施例中,接入模块1702还设置为:在所述异构服务框架的调用侧和服务端均接入所述探针后,通过所述探针拦截从所述调用侧请求到所述服务端的协议;在拦截所述协议的原始代码的第三指定位置***动态增强的代码逻辑,所述第三指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
在本公开的一种示例性实施例中,接入模块1702还设置为:在所述异构服务框架的调用链路上,通过所述探针拦截序列化方式,所述异构服务框架的调用侧的序列化方式与所述异构服务框架的服务端的序列化方式互为可逆过程;在拦截所述序列化方式的原始代码的第四指定位置***动态增强的代码逻辑,所述第四指定位置包括方法入口、方法出口和异常点中的至少一个;通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
由于装置1700的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图18来描述根据本发明的这种实施方式的电子设备1800。图18显示的电子设备1800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图18所示,电子设备1800以通用计算设备的形式表现。电子设备1800的组件可以包括但不限于:上述至少一个处理单元1810、上述至少一个存储单元1820、连接不同***组件(包括存储单元1820和处理单元1810)的总线1830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1810执行,使得所述处理单元1810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1810可以执行如本公开实施例所示的方法。
存储单元1820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)18201和/或高速缓存存储单元18202,还可以进一步包括只读存储单元(ROM)18203。
存储单元1820还可以包括具有一组(至少一个)程序模块18205的程序/实用工具18204,这样的程序模块18205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1800也可以与一个或多个外部设备1840(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1800交互的设备通信,和/或与使得该电子设备1800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1850进行。并且,电子设备1800还可以通过网络适配器1860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1860通过总线1830与电子设备1800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。

Claims (11)

1.一种基于异构服务框架的应用服务实现方法,其特征在于,包括:
在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互。
2.如权利要求1所述的基于异构服务框架的应用服务实现方法,其特征在于,还包括:
响应于所述应用侧的启动指令,加载所述探针;
触发所述探针动态扫描所述应用侧的实现类;
基于所述动态扫描的结果在所述实现类中植入所述探针的指定代码段,所述指定代码段被执行时能够实现获取注册中心的服务的请求地址、发送请求和解析响应结果中的至少一种。
3.如权利要求1所述的基于异构服务框架的应用服务实现方法,其特征在于,还包括:
确定所述探针可拦截的扫描类的框架和实现方法;
响应于所述框架和/或所述实现方法的增删操作,对所述配置文件进行更新;
通过所述探针拉取更新后的配置文件。
4.如权利要求1所述的基于异构服务框架的应用服务实现方法,其特征在于,还包括:
通过所述探针拦截针对应用服务的注册信息,所述注册信息包括应用服务的名称、服务内容信息、地址信息、端口信息、时间戳和注册中心标识中的至少一种;
解析所述注册地址以获取所述应用服务的地址;
将所述应用服务的地址注册到所述异构服务框架的控制面。
5.如权利要求1所述的基于异构服务框架的应用服务实现方法,其特征在于,还包括:
在所述应用服务的消费方接入所述探针后,通过所述探针拦截由所述消费方发送的方法调用;
在所述方法调用的原始代码的第一指定位置***动态增强的代码逻辑,所述第一指定位置包括方法入口、方法出口和异常点中的至少一个;
通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
6.如权利要求1所述的基于异构服务框架的应用服务实现方法,其特征在于,还包括:
在所述应用服务的提供方接入所述探针后,通过所述探针拦截由所述提供方发送的方法调用;
在所述方法调用的原始代码的第二指定位置***动态增强的代码逻辑,所述第二指定位置包括方法入口、方法出口和异常点中的至少一个;
通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
7.如权利要求1所述的基于异构服务框架的应用服务实现方法,其特征在于,还包括:
在所述异构服务框架的调用侧和服务端均接入所述探针后,通过所述探针拦截从所述调用侧请求到所述服务端的协议;
在拦截所述协议的原始代码的第三指定位置***动态增强的代码逻辑,所述第三指定位置包括方法入口、方法出口和异常点中的至少一个;
通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
8.如权利要求1所述的基于异构服务框架的应用服务实现方法,其特征在于,还包括:
在所述异构服务框架的调用链路上,通过所述探针拦截序列化方式,所述异构服务框架的调用侧的序列化方式与所述异构服务框架的服务端的序列化方式互为可逆过程;
在拦截所述序列化方式的原始代码的第四指定位置***动态增强的代码逻辑,所述第四指定位置包括方法入口、方法出口和异常点中的至少一个;
通过所述数据面将动态增强后的代码逻辑对应的配置信息反馈至所述探针。
9.一种基于异构服务框架的应用服务实现装置,其特征在于,包括:
接入模块,设置为在应用侧接入探针,并在所述应用侧的启动脚本中增加所述探针的配置文件,所述配置文件中预设有所述异构服务框架的数据面的应用服务的地址,所述探针基于所述应用服务的地址与所述数据面进行数据交互。
10.一种电子设备,其特征在于,包括:
存储器;以及
耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-7中任一项所述的基于异构服务框架的应用服务实现方法。
11.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如权利要求1-7中任一项所述的基于异构服务框架的应用服务实现方法。
CN202211678748.8A 2022-12-26 2022-12-26 基于异构服务框架的服务实现方法、装置、设备和介质 Pending CN115904543A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211678748.8A CN115904543A (zh) 2022-12-26 2022-12-26 基于异构服务框架的服务实现方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211678748.8A CN115904543A (zh) 2022-12-26 2022-12-26 基于异构服务框架的服务实现方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN115904543A true CN115904543A (zh) 2023-04-04

Family

ID=86487999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211678748.8A Pending CN115904543A (zh) 2022-12-26 2022-12-26 基于异构服务框架的服务实现方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN115904543A (zh)

Similar Documents

Publication Publication Date Title
US11432137B2 (en) Service notification method for mobile edge host and apparatus
CN110413418B (zh) 缓存同步装置及方法,缓存同步***、电子设备
CN111064626B (zh) 配置更新方法、装置、服务器及可读存储介质
CN112636992B (zh) 一种动态路由方法、装置、设备及存储介质
CN114513552B (zh) 数据处理方法、装置、设备及存储介质
US20220245080A1 (en) Method for communication of a componentized application, computing device and computer storage medium
CN116932168A (zh) 异构核调度方法及装置、存储介质、电子设备
CN110325980B (zh) 用于数据库绑定型应用的用户界面后端集群的扩展方法
CN115904543A (zh) 基于异构服务框架的服务实现方法、装置、设备和介质
CN114595080A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111953718A (zh) 一种页面调试方法和装置
WO2022188509A1 (zh) 分布式环境下的任务处理方法、装置、电子设备和介质
CN115412993A (zh) 中继发现方法、***、设备及存储介质
EP3872630A2 (en) Request processing method and apparatus, electronic device, and computer storage medium
CN113791777B (zh) 图片显示方法及装置、计算机可读存储介质及电子设备
CN112187916B (zh) 一种跨***的数据同步方法与装置
CN114285859A (zh) 中间层区块链服务的数据处理方法、装置、设备及存储介质
CN113973135A (zh) 数据缓存处理方法、装置、缓存网格平台和存储介质
CN110764932A (zh) 数据处理方法、***、介质和计算设备
CN111078736A (zh) 一种数据聚合处理方法、装置、终端及存储介质
CN114500481B (zh) 业务请求处理方法、***和装置
CN114884956B (zh) 多集群架构的实现方法、装置及多集群架构***
CN111885194B (zh) 通讯应用的通讯方法及装置、电子设备
CN118012470B (zh) 电力信息管理应用更新方法、装置、电子设备与介质
US11323512B2 (en) Peer to peer infrastructure management architecture

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