一种用于电力系统中支持跨语言调用的微服务集成架构技术方案

技术编号:27105016 阅读:11 留言:0更新日期:2021-01-25 18:53
本发明专利技术公开了一种用于电力系统中支持跨语言调用的微服务集成架构,包括:注册中心、服务提供者、服务消费者以及中间件;注册中心用于实现异构服务提供者的注册和服务消费者的服务发现,并通过读取注册中心的数据监视服务的运行状态;服务提供者和服务消费者均可通过异构语言实现;中间件在实现过程中中间件文件中定义的接口一致,服务提供者根据接口文件中的方法进行实现,服务消费者按照接口文件中的方法进行调用,以扩展异构语言微服务集成系统支持的语言种类。通过设置中间件,实现了对本支持语言种类的扩展,极大地摆脱了微服务系统中异构语言的限制,可以让多种不同语言实现服务接入统一注册中心,实现了所有服务采用同一中间件接口语言。中间件接口语言。中间件接口语言。

【技术实现步骤摘要】
一种用于电力系统中支持跨语言调用的微服务集成架构


[0001]本专利技术涉及电力设备控制软件
,特别涉及一种用于电力系统中支持跨语言调用的微服务集成架构。

技术介绍

[0002]电力系统软件中后台实现多为C/C++,现在JAVA语言开发的项目也已经在项目中不断的得到应用,由于后台服务的功能出现了功能模块的组合,模块的开发团队选用不同的开发语言,会出现遗留系统统一接入改造的问题。为了满足这一需求,需要设计异构服务的统一集成接入方案。
[0003]电力系统软件中后台实现多为C/C++,现在JAVA语言开发的项目也已经在项目中不断的得到应用,由于后台服务的功能出现了功能模块的组合,模块的开发团队选用不同的开发语言,会出现遗留系统统一接入改造的问题。为了满足这一需求,需要设计异构服务的统一集成接入方案。
[0004]当前主流异构服务集成方案主要是基于Rest的集成和基于RPC的集成,但是考虑到电力系统的生产大区和保护大区中因为安全规范的原因不允许使用HTTP协议,所以基于Rest的集成方案不能选择,而当前基于RPC的微服务框架对语言限制较多,如dubbo,springcloud等限定了开发语言是JAVA。

技术实现思路

[0005]本专利技术实施例的目的是提供一种用于电力系统中支持跨语言调用的微服务集成架构,通过设置中间件,实现了对本支持语言种类的扩展,极大地摆脱了微服务系统中异构语言的限制,可以让多种不同语言实现服务接入统一注册中心,实现了所有服务采用同一中间件接口语言,在整个微服务项目中只要统一接口语言文件,即可实现异构服务间的任意调用,使服务间轻耦合,且采用RPC调用比RESTFUL的效率大幅提高,更加适合电力系统领域。
[0006]为解决上述技术问题,本专利技术实施例提供了一种用于电力系统中支持跨语言调用的微服务集成架构,包括:注册中心、服务提供者、服务消费者以及中间件;
[0007]所述注册中心用于实现异构所述服务提供者的注册和所述服务消费者的服务发现,并通过读取所述注册中心的数据监视服务的运行状态;
[0008]所述服务提供者和所述服务消费者为实现具体业务功能的模块或服务单元,所述服务提供者和所述服务消费者均可通过异构语言实现;
[0009]所述中间件用于实现基于RPC的跨语言调用,在实现过程中所述中间件文件中定义的接口一致,所述服务提供者根据接口文件中的方法进行实现,所述服务消费者按照所述接口文件中的方法进行调用,以扩展异构语言微服务集成系统支持的语言种类。
[0010]进一步地,所述中间件选用ICE或Thrift。
[0011]进一步地,所述注册中心选用CONSUL、ZOOKEEPER、REDIS、NOCAS中的任意一种。
[0012]进一步地,所述异构服务调用时的序列化方式为JSON。
[0013]进一步地,所述服务提供者侧和/或所述服务消费者侧可以采用JAVA或C++语言。
[0014]本专利技术实施例的上述技术方案具有如下有益的技术效果:
[0015]通过设置中间件,实现了对本支持语言种类的扩展,极大地摆脱了微服务系统中异构语言的限制,可以让多种不同语言实现服务接入统一注册中心,实现了所有服务采用同一中间件接口语言,在整个微服务项目中只要统一接口语言文件,即可实现异构服务间的任意调用,使服务间轻耦合,且采用RPC调用比RESTFUL的效率大幅提高,更加适合电力系统领域。
附图说明
[0016]图1是现有技术中微服务典型RPC调用的系统架构图;
[0017]图2是微服务典型异构服务调用的系统架构图;
[0018]图3是本专利技术实施例提供的用于电力系统中支持跨语言调用的微服务集成架构的系统架构图。
具体实施方式
[0019]为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。
[0020]图3是本专利技术实施例提供的用于电力系统中支持跨语言调用的微服务集成架构的系统架构图。
[0021]请参照图3,本专利技术实施例提供了一种用于电力系统中支持跨语言调用的微服务集成架构,包括:注册中心、服务提供者、服务消费者以及中间件。注册中心用于实现异构服务提供者的注册和服务消费者的服务发现,并通过读取注册中心的数据监视服务的运行状态;服务提供者和服务消费者为实现具体业务功能的模块或服务单元,服务提供者和服务消费者均可通过异构语言实现;中间件用于实现基于RPC的跨语言调用,在实现过程中中间件文件中定义的接口一致,服务提供者根据接口文件中的方法进行实现,服务消费者按照接口文件中的方法进行调用,以扩展异构语言微服务集成系统支持的语言种类。
[0022]上述用于电力系统中支持跨语言调用的微服务集成架构技术方案通过设置中间件,实现了对本支持语言种类的扩展,极大地摆脱了微服务系统中异构语言的限制,可以让多种不同语言实现服务接入统一注册中心,实现了所有服务采用同一中间件接口语言,在整个微服务项目中只要统一接口语言文件,即可实现异构服务间的任意调用,使服务间轻耦合,且采用RPC调用比RESTFUL的效率大幅提高,更加适合电力系统领域。
[0023]本技术方案中,与图1中典型的RPC调用相比,多了中间件部分,中间件可以直接扩展本技术方案支持的语言种类,理论上只要中间件能够支持的语言都能接入到本方案中,极大的摆脱了微服务系统中异构语言的限制;与图2典型的异构服务接入相比,采用RPC调用效率比Restful大幅提高,并且更加适应电力系统领域,因为Restful通常采用http协议,而电力系统的生产和保护大区中不允许http协议的存在。
[0024]其中,RPC(Remote Procedure Call Protocol)是远程过程调用协议,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,RPC协议假定某些传输协议的存在,为通信程序之间携带信息数据。PRC采用客户机/服务器模式,请求程序就是一个客户机,而服务提供程序就是一个服务器。客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的达到为止。当一个调用信息到达,服务器获得进程参数、计算结果、发送答复信息,然后等待下一个调用信息;最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
[0025]具体的,中间件选用ICE或Thrift。
[0026]其中,ICE是一种面向对象的中间件平台,意味着ICE为构建面向对象的客户-服务器应用提供了工具和API和库支持。ICE应用适合在异种环境使用,客户和服务器可以用不同的编程语言编写,也可以运行在不同的操作系统和机器架构上,并可用多种网络技术进行通信。
[0027]可选的,注册中心选用CONSUL、Z本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于电力系统中支持跨语言调用的微服务集成系统,其特征在于,包括:注册中心、服务提供者、服务消费者以及中间件;所述注册中心用于实现异构所述服务提供者的注册和所述服务消费者的服务发现,并通过读取所述注册中心的数据监视服务的运行状态;所述服务提供者和所述服务消费者为实现具体业务功能的模块或服务单元,所述服务提供者和所述服务消费者均可通过异构语言实现;所述中间件用于实现基于RPC的跨语言调用,在实现过程中所述中间件文件中定义的接口一致,所述服务提供者根据接口文件中的方法进行实现,所述服务消费者按照所述接口文件中的方法进行调用,以扩展异构语言微服务集成系统支持的语言种类...

【专利技术属性】
技术研发人员:丁博黄浩然张航邓建慎华高峰杨迎春王少鹏刘洪星梁鹏威朱朝磊李世通吴可可霍志超刘科成丁亮刘洋方韬张向前张延辉王鲲鹏周山虎贾亚楠肖寰宇
申请(专利权)人:许继电气股份有限公司许昌许继软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1