一种基于DDS中间件的服务网格架构系统

文档序号:37044191发布日期:2024-02-20 20:39阅读:11来源:国知局
一种基于DDS中间件的服务网格架构系统

本发明涉及嵌入式软件开发、系统架构设计、嵌入式实时中间件的应用,具体涉及一种基于dds中间件的服务网格架构系统。


背景技术:

1、数据分发服务(data distribution service,dds)是一种用于实时数据通信的开放标准。它是一种分布式消息传递协议,旨在支持高性能、实时、可靠的数据传输和通信。dds最初由对象管理组织(object management group,omg)开发,定义了一系列中间件协议和api标准。dds提供了一种基于发布/订阅模型的通信范式,允许分布式应用程序在网络上以实时方式交换数据。它支持多种通信模式,包括点对点、多对多和广播。dds的目标是提供一种可扩展、可靠且高效的数据通信机制,以满足各种实时应用程序的需求。

2、服务网格(service mesh)是轻量级高性能网络代理,作为服务间通信的基础设施层,提供安全的、快速的、可靠地服务间通讯,与实际应用部署一起,但对应用透明。应用作为服务的发起方,只需要用最简单的方式将请求发送给本地的服务网格代理,然后网格代理会进行后续的操作,如服务发现,负载均衡,最后将请求转发给目标服务。这个模式的核心在于实现了数据面(业务逻辑)和控制面的解耦。具体到微服务架构中,即给每一个微服务实例同步部署一个代理节点。

3、随着分布式架构的广泛使用、微服务架构的迅速发展,系统的编排和部署的难度都在大幅提高。在传统的服务网格产品当中,通信配置存在一定的难度,并且难以满足实时性要求,因此在服务网格中使用dds通信中间件,系统可以实现对服务的管理和控制的同时,还可以实现实时数据的高效传输和分发。这种结合可以提供更好的可靠性、性能和扩展性,适用于需要同时管理服务通信和实时数据传输的分布式系统。


技术实现思路

1、为了解决上述技术问题或至少部分地解决上述技术问题,本公开提供了一种基于dds中间件的服务网格架构系统。该基于dds中间件的服务网格架构系统部署于嵌入式操作系统,包括:

2、至少一个服务代理节点、至少一个服务逻辑节点、服务管理节点、通信中间件;

3、所述服务代理节点,用于接收来自所述服务逻辑节点的调用请求,并在接收到所述调用请求后,检查是否拥有服务调用许可证书,若没有则发起服务发现,从所述服务管理节点获取所述服务调用许可证书,将所述调用请求通过所述通信中间件转发至相应的目标位置,同步等待并接收远端的服务响应,将所述服务响应转发至所述服务逻辑节点;

4、所述服务逻辑节点,用于执行具体的业务逻辑,所述具体业务逻辑按照生命周期可分为后台服务和即时服务;所述后台服务会在服务加载后持续运行,负责执行核心功能或周期性逻辑,不用于处理外部服务调用请求;所述即时服务会在接收到服务调用请求后立即执行相应操作,并返回处理结果;所述后台服务和即时服务均可以主动对集群中的其他服务进行调用;

5、所述服务管理节点,用于记录整个集群系统中包含的所有可调用服务,生成统一路由表;以及在所述服务逻辑节点发起服务发现请求时,向所述服务逻辑节点对应的服务代理节点发送服务调用许可证书;以及接收来自所述服务代理节点的心跳信号,用于进行所述服务代理节点健康状态的检查;

6、所述通信中间件,位于所述嵌入式操作系统层之上,基于数据分发服务dds实现,用于为本地服务代理节点、远端服务代理节点、所述服务管理节点三者之间提供连接,所述三者可以借助所述通信中间件传输信息;

7、在一些实施例中,所述服务代理节点还用于:

8、接收通过所述通信中间件传输的外部服务调用请求,并在接收到所述外部服务调用请求后,将所述外部服务调用请求转发至对应服务逻辑节点,并且同步等待所述服务逻辑节点的服务响应,在接收到所述服务响应后,将所述服务响应通过所述通信中间件转发至调用服务的服务逻辑节点对应的服务代理节点;

9、接收所述服务逻辑节点的本地服务注册请求,对来自所述服务逻辑节点的服务描述信息条目进行持久化存储;

10、在进行所述本地服务注册后,若进行注册的服务为所述即时服务,将所述服务描述信息条目发送至所述服务管理节点,进行远程服务注册;

11、在服务加载或暴露时,创建线程监听操作系统分配的udp socket端口和通信中间件端口;

12、收集本地的注册服务负载信息,进行序列化处理,将序列化后的数据作为心跳信号发送至所述服务管理节点;

13、在进行转发来自通信中间件或内部所述服务逻辑节点的消息时,对所述消息的来源、目的地、转发时间和是否成功送达等作为日志信息进行记录。

14、在一些实施例中,所述服务逻辑节点还用于:

15、读取配置文件中的所述服务描述信息条目,将所述服务描述信息条目通过tcpsocket发送至所述服务代理节点,进行所述本地服务注册;

16、根据所述配置文件的接口描述信息,自动生成相应的参数序列化和反序列化策略;

17、在服务暴露时,创建线程监听操作系统分配的udp socket端口,用于对所述服务调用请求进行监听。

18、在一些实施例中,所述服务管理节点还用于:

19、接收所述服务代理节点的远程服务注册请求,对来自所述服务代理节点的所述服务描述信息条目进行持久化存储;

20、接收所述服务代理节点的节点注册请求,对所述服务代理节点的标识符进行持久化存储。

21、在一些实施例中,所述持久化存储使用嵌入式关系型数据库管理系统sqlite,进行的操作包括:

22、所述服务代理节点创建一个数据库表,所述数据库表使用服务名称作为主键,其他字段及数据类型根据所述服务描述信息条目指定;

23、所述服务代理节点在接收到所述服务逻辑节点的所述服务注册信息后,将所述服务注册信息插入到所述数据库表当中;

24、当所述服务代理节点从故障中恢复,自动读取所述数据库表中的服务描述信息条目,并重新进行本地服务注册。

25、在一些实施例中,所述服务代理节点还用于:

26、在所述后台服务进行服务加载时,所述服务代理节点会创建多个dds实体,包含一个发布者、一个订阅者,一个数据写入者和一个数据读取者,用于与外部服务代理节点通信,以及创建一个线程并监听操作系统分配的udp socket端口,用于接收所述后台服务的服务调用请求;在接收到所述服务逻辑节点的服务调用请求,所述数据写入者对调用参数进行编列,所述发布者发送数据,所述订阅者进行同步等待接收数据,所述数据读取者将所述数据反编列为响应参数;

27、在所述即时服务进行服务加载时,所述服务代理节点会创建多个dds实体,包含一个发布者、一个订阅者,两个数据写入者和两个数据读取者,用于与外部服务代理节点通信,以及创建一个线程并监听操作系统分配的udp socket端口,用于接收所述即时服务的服务调用请求。

28、在一些实施例中,所述配置文件有如下要求:

29、所述配置文件中的所述服务描述信息条目至少包含服务名称、服务调用参数类型、服务响应参数类型、服务数据域id;

30、所述服务名称为服务在集群内的标识,所述服务调用参数类型指示所述即时服务的输入参数类型与排列顺序,所述服务响应参数类型指示所述即时服务的输出参数类型与排列顺序,所述服务数据域id指定服务所在的数据域。

31、在一些实施例中,所述服务管理节点还用于:

32、创建一个数据库表,并将每一条远程服务注册请求中的服务描述信息条目存储至所述数据库表中;

33、创建另一个数据库表,将进行节点注册的所述服务代理节点的标识符存储至所述数据库表中;

34、当所述服务管理节点从故障中恢复,自动读取所述数据库表中的服务描述信息条目与服务代理节点标识符,并重新进行远程服务注册和节点注册。

35、至此,一种基于dds中间件的服务网格架构系统,该系统包含至少一个服务代理节点、至少一个服务逻辑节点、服务管理节点和通信中间件;其中,服务代理节点,用于接收来自所述服务逻辑节点的调用请求,并在接收到所述调用请求后,检查是否拥有服务调用许可证书,若没有则发起服务发现,从所述服务管理节点获取所述服务调用许可证书,将所述调用请求通过通信中间件转发至相应的目标位置,并且同步等待远端的服务响应,将所述服务响应转发至所述服务逻辑节点;其中,服务逻辑节点,用于执行具体的业务逻辑,所述具体业务逻辑按照生命周期可分为后台服务和即时服务;所述后台服务会在服务加载后持续运行,负责执行核心功能或周期性逻辑,不用于处理外部服务调用请求;所述即时服务会在接收到服务调用请求后立即执行相应操作,并返回处理结果;所述后台服务和即时服务均可以主动对集群中的其他服务进行调用;其中,服务管理节点,用于记录整个集群系统中包含的所有可调用服务,生成统一路由表;以及在所述服务逻辑节点发起调用请求时,向所述服务逻辑节点对应的服务代理节点发送服务调用许可证书;以及接收来自所述服务代理节点的心跳信号,用于进行所述服务代理节点健康状态的检查;其中,通信中间件,位于所述嵌入式操作系统层之上,基于数据分发服务dds实现,用于为本地服务代理节点、远端服务代理节点、所述服务逻辑节点三者之间提供连接,所述三者可以借助所述通信中间件传输信息;

36、本发明的有益效果是:本发明实现一种基于dds中间件的服务网格架构系统,借助服务网格思想,能够对各类服务进行分布式部署,并且使用dds中间件,实现服务间的高速信息交互,为系统的模块化、轻量化设计、实现不同功能组件的松耦合通信、高可靠性以及高可用性等提供技术基础。本发明提供的技术思路,可以为各种规模分布式实时系统开发提供经验方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1