一种分布式事件发布订阅方法、装置、系统及存储介质与流程

未命名 07-14 阅读:118 评论:0


1.本发明涉及计算机领域,特别涉及一种分布式事件发布订阅方法、装置、系统及存储介质。


背景技术:

2.现有技术中,常用的有rocketmq(rocketmq是由一款低延迟、高并发、高可用、高可靠的分布式消息中间件)、kafka(kafka是一种分布式的,基于发布/订阅的消息系统)等开源组件,提供了丰富的消息检索、消息生产与消费的功能,但是其部署搭建使用都较为繁杂,学习成本和使用成本较高,且比较耗费系统资源。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种分布式事件发布订阅方法、装置、系统及存储介质,解决了现有技术中部署搭建复杂,学习成本和使用成本高的问题。
4.为解决上述技术问题,本发明提供了一种分布式事件发布订阅方法,应用于第一服务节点,所述第一服务节点为事件中心服务集群的服务节点,包括:
5.通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中;所述第二服务节点为流媒体服务集群的服务节点;
6.通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点;
7.利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;
8.利用所述第一目标服务节点通过所述soe框架将所述发布事件发送给所述第二目标服务节点。
9.可选的,在通过soe框架接收第二服务节点发送的发布事件和订阅事件之后,还包括:
10.将所述发布事件保存在关系型数据库中。
11.可选的,在所述通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点之前,还包括:
12.判断所述redis数据库中是否存在所述发布事件;
13.若存在,则通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点;
14.若不存在,则结束。
15.可选的,所述订阅事件包括:
16.所述订阅事件至少包括订阅类型、订阅内容、订阅描述、订阅编码中的一项。
17.可选的,所述将所述发布事件保存在关系型数据库中,包括:
18.将所述发布事件保存在mysql数据库中。
19.本发明还提供另一种分布式事件发布订阅方法,应用于第二服务节点,所述第二服务节点为流媒体服务集群的服务节点,包括:
20.通过soe框架将发布事件和订阅事件发送给第一服务节点,以使所述第一服务节点将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中,通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点,利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;
21.通过所述第二目标服务节点接收所述第一目标服务节点通过所述soe框架发送的所述发布事件。
22.本发明还提供一种分布式事件发布订阅装置,应用于第一服务节点,所述第一服务节点为事件中心服务集群的服务节点,包括:
23.第一接收和保存模块,用于通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中;所述第二服务节点为流媒体服务集群的服务节点;
24.分发和确认模块,用于通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点;
25.确定模块,用于利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;
26.第一发送模块,用于利用所述第一目标服务节点通过所述soe框架将所述发布事件发送给所述第二目标服务节点。
27.本发明还提供另一种分布式事件发布订阅装置,应用于第二服务节点,所述第二服务节点为流媒体服务集群的服务节点,包括:
28.第二发送模块,用于通过soe框架将发布事件和订阅事件发送给第一服务节点,以使所述第一服务节点将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中,通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点,利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;
29.第二接收模块,用于通过所述第二目标服务节点接收所述第一目标服务节点通过所述soe框架发送的所述发布事件。
30.本发明还提供一种分布式事件发布订阅系统,包括:
31.第一服务节点,用于通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中;通过所述redis
数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点;利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;利用所述第一目标服务节点通过所述soe框架将所述发布事件发送给所述第二目标服务节点;
32.第二服务节点,用于通过所述soe框架将所述发布事件和所述订阅事件发送给所述第一服务节点,并通过所述第二目标服务节点接收所述第一目标服务节点通过所述soe框架发送的所述发布事件;
33.所述第一服务节点为事件中心服务集群的服务节点,所述第二服务节点为流媒体服务集群的服务节点。
34.本发明还提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5和/或6任一项所述的分布式事件发布订阅方法的步骤。
35.可见,本发明通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将订阅事件和所述第二服务节点的映射关系保存在redis数据库中;第二服务节点为流媒体服务集群的服务节点;通过redis数据库将所述发布事件分发到所述事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点;利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点;利用第一目标服务节点通过soe框架将发布事件发送给第二目标服务节点。本方法采用soe开发框架和开源的redis数据库组件,实现了无关开发语言的分布式的事件发布与订阅,解决了现有组件学习成本和使用成本高的问题,同步降低系统资源占用,也更加紧密的结合现有业务场景。
36.此外,本发明还提供了一种分布式事件发布订阅装置、系统和存储介质,同样具有上述有益效果。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
38.图1为本发明实施例提供的一种分布式事件发布订阅方法的流程图;
39.图2为本发明实施例提供的一种分布式事件发布订阅装置的结构示意图;
40.图3为本发明实施例提供的另一种分布式事件发布订阅装置的结构示意图;
41.图4为本发明实施例提供的一种分布式事件发布订阅系统的结构示意图。
具体实施方式
42.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅
仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.请参考图1,图1为本发明实施例提供的一种分布式事件发布订阅方法的流程图。该方法可以包括:
44.s101:通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将订阅事件和第二服务节点的映射关系保存在redis数据库中;第二服务节点为流媒体服务集群的服务节点。
45.本实施例的执行主体为事件中心服务集群的第一服务平台。本实施例并不限定事件中心服务集群的第一服务平台的种类,只要事件中心服务集群的第一服务平台能完成分布式事件发布订阅的步骤即可。例如,可以是通用型终端;也可以是专用型终端。
46.本实施例中并不限定事件中心服务集群中服务节点的数量,事件服务中心集群中的任意一个服务节点都可以作为第一服务节点,执行相应的操作。本实施例并不限定流媒体服务集群的服务节点的数量,本实施例也不限定流媒体服务集群中服务集群的内容,例如可以包括接入服务集群;或者可以包括点播服务集群;或者可以包括数据中心服务集群;或者可以包括调度中心服务集群;或者可以包括转流服务集群;或者可以包括状态嗅探服务集群,本实施例中的流媒体服务集群可以包括上述一个或多个服务集群。本实施例并不限定上述服务集群中服务节点的数量,例如可以包括一个服务节点;或者还可以包括多个服务节点。本实施例并限定流媒体服务集群中服务节点的数量,流媒体服务集群中的任意一个服务节点都可以作为第二服务节点执行相应的操作。
47.本实施例中redis(remote dictionary server)数据库,远程字典服务,是一个开源的使用ansi c(ansi c是美国国家标准协会(ansi)及国际标准化组织(iso)推出的关于c语言的标准)编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库(key是关键字、value是值,key-value数据库是一种以键值对存储数据的一种数据库),并提供多种语言的api(application programming interface,应用程序编程接口)。redis是一种被广泛使用的高性能key-value数据库,性能优异,而且非常的轻量级,使用非常方便。
48.本实施例中soe(services-oriented engine,面向服务的引擎)是一套网络分布式开发环境,包括接口语言、代码生成工具、支持库及基础服务。使用soe进行分布式应用开发,无须深入了解网络通信、跨平台开发、跨语言开发等技术。soe也可用于本机多进程通信应用及进程内组件式应用。soe为全双工网络rpc(remote procedure call,远程程序调用)远程过程调用协议,服务端和客户端都提供三种基本调用模式:同步rpc、异步rpc、异步组分发rpc。soe框架是一个基于会话技术的rpc框架,所有的通信都通过会话对象完成,会话提供了完备的全双工支持,通信双方使用会话对象的方法和回调进行互相调用。soe框架通过会话回调技术支持发布订阅方式。soe框架能够实现平台无关性、开发语言无关性,简单实用、高效、易于实现,与corba(common object request broker architecture,通用对象请求代理体系)、net-remoting(提供了一种允许对象通过应用程序域与另一对象进行交互的框架,能够在任何类型的应用程序中灵活地托管远程对象)、ice(internet communications engine,网络通信引擎)、thrift(是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务)、brpc(用c++语言编写的工业级rpc框架,常用于搜索、存储、机器学习、广告、推荐等高性能系统)、dubbo(开源的一个高性能优秀的服务框架)
等rpc系统不同,soe为轻代码栈,学习它只需要理解很少的概念,所有的通信都通过会话对象完成,会话提供了完备的全双工支持,通信双方使用会话对象的方法和回调进行互相调用,在实际开发应用中性能强悍。
49.可以理解的是,在接收之前,定义事件保存接口、事件订阅接口和事件回调接口,soe框架代码生成器根据接口定义生成流媒体服务集群和事件服务集群的事件保存接口、事件订阅接口和事件回调接口相应的代码,编写代码逻辑,使得事件服务集群实现事件保存接口和事件订阅接口,流媒体服务集群实现事件回调接口,即soe框架长链接的方式将事件信息从事件中心服务集群的服务节点传输给流媒体服务集群中的服务节点。
50.本实施例并不限定发布事件是否保存,例如可以将发布事件保存到数据库中,或者还可以不对发布事件进行保存。本实施例并不限定数据库的具体类型,例如可以是关系型数据库,或者还可以是内存数据库。本实施例并不限定发布事件和订阅事件的保存的顺序,例如可以将发布事件保存在数据库和将订阅事件保存在redis数据库同时进行;或者还可以先将发布事件保存在数据库之后,再将订阅事件保存在redis数据库;或者还可以先将订阅事件保存在redis数据库之后,再将发布事件保存在数据库中。
51.进一步地,为了后续可以对数据进行分析,在上述通过soe框架接收第二服务节点发送的发布事件和订阅事件之后,还可以包括以下步骤:
52.将发布事件保存在关系型数据库中。
53.本实施例并不对关系型数据库进行限定,例如可以是mysql数据库(一种关系型数据库管理系统),或者还可以是oracle数据库(一种关系型数据库管理系统),或者还可以是sqlserver数据库(一种关系型数据库管理系统)。
54.进一步地,为了减少资源占用,降低学习成本,在上述将发布事件保存在关系型数据库中,可以包括以下步骤:
55.将发布事件保存在mysql数据库中。
56.本实施例并不限定订阅事件的数量,例如可以是一个;或者还可以是多个。本实施例并不限定订阅事件的内容,例如可以是订阅内容;或者还可以是订阅类型;或者还可以是订阅描述;或者还可以是订阅编码。
57.进一步地,为了使流媒体服务集群中的服务节点更准确的获取订阅的事件,精确推送内容,在上述订阅事件中,可以包括以下步骤:
58.订阅事件至少包括订阅类型、订阅内容、订阅描述、订阅编码中的一项。
59.s102:通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点。
60.本实施例中通过redis数据库的消息订阅分布模块,将发布事件分发到事件中心服务集群的其它服务节点,使得事件服务中心集群中的各个服务节点都接收到发布事件,并且通过redis数据库记录的映射关系(本发布事件可能是流媒体服务集群中其它服务节点的订阅事件)查找到发布事件对应的流媒体服务集群中的服务节点作为第二目标服务节点。
61.本实施例并不限定通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点的前提条件,例如可以是当接收到发布事件时,则通过redis数
据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点;或者还可以是先redis数据库中存在发布事件,则通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点。
62.进一步地,为了减少资源占用,在上述通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点之前,还可以包括以下步骤:
63.判断redis数据库中是否存在发布事件;
64.若存在,则通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点;
65.若不存在,则结束。
66.判断redis数据库中是否存在发布事件,若存在,即说明流媒体服务集群中有服务节点订阅事件为本发布事件,则利用redis数据库的消息订阅分布模块将发布事件分发到事件中心服务集群的其它服务节点,使得事件服务中心集群中的各个服务节点都接收到发布事件。
67.s103:利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点。
68.本实施例中事件服务中心集群中的各个服务节点收到发布事件后,根据服务节点自身的会话信息,会话信息中保存有节点信息,利用会话信息的节点信息确定与第二目标服务节点相连接的第一目标服务节点,即事件中心服务集群中与第二目标服务节点相连接的服务节点作为第一目标服务节点。
69.s104:利用第一目标服务节点通过soe框架将发布事件发送给第二目标服务节点。
70.本实施例中当确定第一目标服务节点后,通过soe框架将发布事件发送给第二目标服务节点。完成事件的发布与订阅。
71.应用本发明实施例提供的分布式事件发布订阅方法,应用于第一服务节点,第一服务节点为事件中心服务集群的服务节点,通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将订阅事件和所述第二服务节点的映射关系保存在redis数据库中;第二服务节点为流媒体服务集群的服务节点;通过redis数据库将所述发布事件分发到所述事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点;利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点;利用第一目标服务节点通过soe框架将发布事件发送给第二目标服务节点。本方法采用soe开发框架和开源的redis数据库组件,实现了无关开发语言的分布式的事件发布与订阅,解决了现有组件学习成本和使用成本高的问题,同步降低系统资源占用,也更加紧密的结合现有业务场景。并且,将发布事件保存在关系型数据库中,有利于后期对数据进行分析;关系型数据库为mysql开源数据库,适用于大量数据的存储;订阅事件至少包括订阅类型、订阅内容、订阅描述、订阅编码中的一项,可以使流媒体服务集群中的服务节点更准确的获取订阅的事件,有利于精确推送;在通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点之前,当redis数据库中存在发布事件时,通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,有利于减少资源占用。
72.本发明实施例还提供的另一种分布式事件发布订阅方法。该方法可以包括:
73.s201:通过soe框架将发布事件和订阅事件发送给第一服务节点,以使第一服务节点将所述订阅事件和第二服务节点的映射关系保存在redis数据库中,通过所述redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点,利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点。
74.本实施例的执行主体为流媒体服务集群的第二服务平台。本实施例并不限定流媒体服务集群的第二服务平台的种类,只要能够完成分布式事件发布订阅的步骤即可。例如,可以是通用型终端;也可以是专用型终端。
75.s202:通过第二目标服务节点接收第一目标服务节点通过soe框架发送的发布事件。
76.应用本发明实施例提供的分布式事件发布订阅方法,应用于第二服务节点,第二服务节点为流媒体服务集群的服务节点;通过soe框架将发布事件和订阅事件发送给第一服务节点,以使第一服务节点将所述订阅事件和第二服务节点的映射关系保存在redis数据库中,通过所述redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点,利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点;通过第二目标服务节点接收第一目标服务节点通过soe框架发送的发布事件。本方法采用soe开发框架和开源的redis数据库组件,实现了无关开发语言的分布式的事件发布与订阅,解决了现有组件学习成本和使用成本高的问题,同步降低系统资源占用,也更加紧密的结合现有业务场景。
77.下面对本发明实施例提供的一种分布式事件发布订阅装置进行介绍,下文描述的分布式事件发布订阅装置与上文描述的分布式事件发布订阅方法可相互对应参照。
78.具体请参考图2,图2为本发明实施例提供的一种分布式事件发布订阅装置的结构示意图,应用于第一服务节点,第一服务节点为事件中心服务集群的服务节点,可以包括:
79.第一接收和保存模块100,用于通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将订阅事件和第二服务节点的映射关系保存在redis数据库中;第二服务节点为流媒体服务集群的服务节点;
80.分发和确认模块200,用于通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点;
81.确定模块300,用于利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点;
82.第一发送模块400,用于利用第一目标服务节点通过soe框架将发布事件发送给第二目标服务节点。
83.基于上述实施例,所述分布式事件发布订阅装置,还可以包括:
84.发布事件保存模块,用于将发布事件保存在关系型数据库中。
85.基于上述任意实施例,所述分布式事件发布订阅装置,还可以包括:
86.判断模块,用于判断redis数据库中是否存在发布事件;
87.分发模块,用于若存在,则通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点;若不存在,则结束。
88.基于上述任意实施例,所述订阅事件至少可以包括订阅类型、订阅内容、订阅描述、订阅编码中的一项。
89.基于上述任意实施例,所述发布事件保存模块,可以包括:
90.保存单元,用于将发布事件保存在mysql数据库中。
91.需要说明的是,上述分布式事件发布订阅装置中的模块以及单元在不影响逻辑的情况下,其顺序可以前后进行更改。
92.应用本发明实施例提供的分布式事件发布订阅装置,应用于第一服务节点,第一服务节点为事件中心服务集群的服务节点,第一接收和保存模块100,用于通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将订阅事件和第二服务节点的映射关系保存在redis数据库中;第二服务节点为流媒体服务集群的服务节点;分发和确认模块200,用于通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点;确定模块300,用于利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点;第一发送模块400,用于利用第一目标服务节点通过soe框架将发布事件发送给第二目标服务节点。本装置采用soe开发框架和开源的redis数据库组件,实现了无关开发语言的分布式的事件发布与订阅,解决了现有组件学习成本和使用成本高的问题,同步降低系统资源占用,也更加紧密的结合现有业务场景。并且,将发布事件保存在关系型数据库中,有利于后期对数据进行分析;关系型数据库为mysql开源数据库,适用于大量数据的存储;订阅事件至少包括订阅类型、订阅内容、订阅描述、订阅编码中的一项,可以使流媒体服务集群中的服务节点更准确的获取订阅的事件,有利于精确推送;在通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点之前,当redis数据库中存在发布事件时,通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,有利于减少资源占用。
93.下面对本发明实施例提供的另一种分布式事件发布订阅装置进行介绍,下文描述的分布式事件发布订阅装置与上文描述的另一种分布式事件发布订阅方法可相互对应参照。
94.具体请参考图3,图3为本发明实施例提供的另一种分布式事件发布订阅装置的结构示意图,应用于第二服务节点,第二服务节点为流媒体服务集群的服务节点,可以包括:
95.第二发送模块500,用于通过soe框架将发布事件和订阅事件发送给第一服务节点,以使第一服务节点将订阅事件和第二服务节点的映射关系保存在redis数据库中,通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点,利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点。
96.第二接收模块600,用于通过第二目标服务节点接收第一目标服务节点通过soe框
架发送的发布事件。
97.需要说明的是,上述分布式事件发布订阅装置中的模块以及单元在不影响逻辑的情况下,其顺序可以前后进行更改。
98.应用本发明实施例提供的分布式事件发布订阅装置,应用于第二服务节点,第二服务节点为流媒体服务集群的服务节点,通过第二发送模块500,用于通过soe框架将发布事件和订阅事件发送给第一服务节点,以使第一服务节点将订阅事件和第二服务节点的映射关系保存在redis数据库中,通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点,利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点;第二接收模块600,用于通过第二目标服务节点接收第一目标服务节点通过soe框架发送的发布事件。本装置采用soe开发框架和开源的redis数据库组件,实现了无关开发语言的分布式的事件发布与订阅,解决了现有组件学习成本和使用成本高的问题,同步降低系统资源占用,也更加紧密的结合现有业务场景。
99.下面对本发明实施例提供的一种分布式事件发布订阅系统进行介绍,下文描述的分布式事件发布订阅系统与上文描述的分布式事件发布订阅方法可相互对应参照。
100.请参考图4,图4为本发明实施例提供的一种分布式事件发布订阅系统的结构示意图,可以包括:
101.第一服务节点,用于通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将订阅事件和第二服务节点的映射关系保存在redis数据库中;通过redis数据库将发布事件分发到事件中心服务集群中除第一服务节点之外的服务节点,以使事件服务中心集群中的各个服务节点接收发布事件,并通过redis数据库查找发布事件对应的第二目标服务节点;利用事件服务中心集群中的各个服务节点的会话信息确定与第二目标服务节点连接的第一目标服务节点;利用第一目标服务节点通过soe框架将发布事件发送给第二目标服务节点;
102.第二服务节点,用于通过soe框架将发布事件和订阅事件发送给第一服务节点,并通过第二目标服务节点接收第一目标服务节点通过soe框架发送的所述发布事件;
103.第一服务节点为事件中心服务集群的服务节点,第二服务节点为流媒体服务集群的服务节点。
104.下面对本发明实施例提供的存储介质进行介绍,下文描述的存储介质与上文描述的分布式事件发布订阅方法可相互对应参照。
105.本发明还提供一种存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的分布式事件发布订阅方法的步骤。
106.该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
107.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分
说明即可。
108.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
109.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
110.以上对本发明所提供的分布式事件发布订阅方法、装置、系统和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种分布式事件发布订阅方法,其特征在于,应用于第一服务节点,所述第一服务节点为事件中心服务集群的服务节点,包括:通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中;所述第二服务节点为流媒体服务集群的服务节点;通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点;利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;利用所述第一目标服务节点通过所述soe框架将所述发布事件发送给所述第二目标服务节点。2.根据权利要求1所述的分布式事件发布订阅方法,其特征在于,在通过soe框架接收第二服务节点发送的发布事件和订阅事件之后,还包括:将所述发布事件保存在关系型数据库中。3.根据权利要求1所述的分布式事件发布订阅方法,其特征在于,在所述通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点之前,还包括:判断所述redis数据库中是否存在所述发布事件;若存在,则通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点;若不存在,则结束。4.根据权利要求1所述的分布式事件发布订阅方法,其特征在于,所述订阅事件包括:所述订阅事件至少包括订阅类型、订阅内容、订阅描述、订阅编码中的一项。5.根据权利要求2所述的分布式事件发布订阅方法,其特征在于,所述将所述发布事件保存在关系型数据库中,包括:将所述发布事件保存在mysql数据库中。6.一种分布式事件发布订阅方法,其特征在于,应用于第二服务节点,所述第二服务节点为流媒体服务集群的服务节点,包括:通过soe框架将发布事件和订阅事件发送给第一服务节点,以使所述第一服务节点将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中,通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点,利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;通过所述第二目标服务节点接收所述第一目标服务节点通过所述soe框架发送的所述发布事件。7.一种分布式事件发布订阅装置,其特征在于,应用于第一服务节点,所述第一服务节点为事件中心服务集群的服务节点,包括:
第一接收和保存模块,用于通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中;所述第二服务节点为流媒体服务集群的服务节点;分发和确认模块,用于通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点;确定模块,用于利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;第一发送模块,用于利用所述第一目标服务节点通过所述soe框架将所述发布事件发送给所述第二目标服务节点。8.一种分布式事件发布订阅装置,其特征在于,应用于第二服务节点,所述第二服务节点为流媒体服务集群的服务节点,包括:第二发送模块,用于通过soe框架将发布事件和订阅事件发送给第一服务节点,以使所述第一服务节点将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中,通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点,利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;第二接收模块,用于通过所述第二目标服务节点接收所述第一目标服务节点通过所述soe框架发送的所述发布事件。9.一种分布式事件发布订阅系统,其特征在于,包括:第一服务节点,用于通过soe框架接收第二服务节点发送的发布事件和订阅事件,并将所述订阅事件和所述第二服务节点的映射关系保存在redis数据库中;通过所述redis数据库将所述发布事件分发到所述事件中心服务集群中除所述第一服务节点之外的服务节点,以使所述事件服务中心集群中的各个服务节点接收所述发布事件,并通过所述redis数据库查找所述发布事件对应的第二目标服务节点;利用所述事件服务中心集群中的各个服务节点的会话信息确定与所述第二目标服务节点连接的第一目标服务节点;利用所述第一目标服务节点通过所述soe框架将所述发布事件发送给所述第二目标服务节点;第二服务节点,用于通过所述soe框架将所述发布事件和所述订阅事件发送给所述第一服务节点,并通过所述第二目标服务节点接收所述第一目标服务节点通过所述soe框架发送的所述发布事件;所述第一服务节点为事件中心服务集群的服务节点,所述第二服务节点为流媒体服务集群的服务节点。10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5和/或6任一项所述的分布式事件发布订阅方法的步骤。

技术总结
本发明公开了一种分布式事件发布订阅方法、装置、系统及存储介质,应用于计算机领域,包括:通过SOE框架接收发布事件和订阅事件,并将订阅事件和第二服务节点的映射关系保存在Redis数据库中;通过Redis数据库和服务节点的会话信息确定发布事件对应的第二目标服务节点和与第二目标服务节点连接的第一目标服务节点;利用第一目标服务节点通过SOE框架将发布事件发送给第二目标服务节点;第一服务节点为事件中心服务集群的服务节点,第二服务节点为流媒体服务集群的服务节点。本发明采用SOE框架和Redis数据库,实现了无关开发语言的分布式的事件发布与订阅,解决了现有组件学习成本和使用成本高的问题,降低了系统资源占用。降低了系统资源占用。降低了系统资源占用。


技术研发人员:范小龙
受保护的技术使用者:济南浪潮数据技术有限公司
技术研发日:2023.03.17
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐