CN117411762A - 分布式消息传输方法、装置、设备及介质 - Google Patents
分布式消息传输方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117411762A CN117411762A CN202311395848.4A CN202311395848A CN117411762A CN 117411762 A CN117411762 A CN 117411762A CN 202311395848 A CN202311395848 A CN 202311395848A CN 117411762 A CN117411762 A CN 117411762A
- Authority
- CN
- China
- Prior art keywords
- message
- gateway
- connection
- domain
- server
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000005540 biological transmission Effects 0.000 title claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 19
- 238000001514 detection method Methods 0.000 claims description 6
- 238000002955 isolation Methods 0.000 abstract description 3
- 230000008878 coupling Effects 0.000 abstract 1
- 238000010168 coupling process Methods 0.000 abstract 1
- 238000005859 coupling reaction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L41/026—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using e-messaging for transporting management information, e.g. email, instant messaging or chat
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种分布式消息传输方法,包括:在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接;在跨域的消息服务集群的消息服务器中内置预设端口,在跨域的消息服务集群之间传输分布式消息,预设端口获得防火墙的允许;其中,建立消息服务集群跨域的网关节点的连接时,消息服务集群中的每个网关节点都仅连接跨域的远程消息服务集群中的单个网关节点。该方法具备在安全隔离的环境下进行跨域传输的能力,通过异步传输的方式减少了应用软件的耦合度,大大提供了传输能力,具有通过最小网络连接组成超级集群的能力。
Description
技术领域
本公开涉及分布式计算和信息传输技术领域,尤其涉及一种分布式消息传输方法、装置、电子设备及介质。
背景技术
随着信息技术的发展和大数据时代的到临,云计算和微服务框架被广泛采用,日益增多的企业需要凭借跨多云平台之间的数据交互进行业务开放、决策制定并实现优化。多云数据中心之间相互交互,构建高可用、可扩展、安全有效的网络服务的成为必然需求,消息跨云传输技术应运而生。
目前跨多个安全隔离云数据中心的传输方案较少,常见的方案是使用TCP、UDP编程技术封装后采用同步传输的方式进行消息的传递,性能和效率都比较低。大多数方案也不能保障消息的可靠投递,或者为了可靠传输而牺牲了传输的速度,不能满足高效传输的需求。有的方案构建多个跨数据中心集群节点之间连接数过于庞大,白白浪费了宝贵的带宽资源。
发明内容
鉴于上述问题,本发明提供了一种分布式消息传输方法,以解决上述问题。
本公开的第一方面提供了一种分布式消息传输方法,包括:在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接;在跨域的消息服务集群的消息服务器中内置预设端口,在跨域的消息服务集群之间传输分布式消息,所述预设端口获得防火墙的允许;其中,建立所述消息服务集群跨域的网关节点的连接时,所述消息服务集群中的每个网关节点都仅连接跨域的远程消息服务集群中的单个网关节点。
根据本公开的实施例,所述在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接包括:当所述消息服务器启动后,检测所述消息服务器是否配置gateway端口;当所述消息服务器配置了gateway端口,启动一个协程检测inbound连接域内其他消息服务器发送来的网关节点,并创建outbound连接所述gateway端口中配置的远程服务器的网关节点。
根据本公开的实施例,所述方法还包括:建立所述网关节点的连接后,发送创建连接的消息服务器的INFO消息给接收所述网关连接的消息服务器,使接收所述网关连接的消息服务器添加创建连接的消息服务器的地址及端口IP字段;通过接收所述网关连接的消息服务器将所述INFO消息转发给其他消息服务器。
根据本公开的实施例,所述方法还包括:在接收所述网关连接的消息服务器收到所述INFO消息后,向接收所述网关连接的消息服务器发送CONNECT消息,所述CONNECT消息包括所述网关节点的令牌信息及安全信息。
根据本公开的实施例,所述方法还包括:通过processConnect方法建立所述消息服务器与客户端之间的连接;在所述消息服务器中启动读取循环,接收所述客户端的分布式消息,并在消息服务集群中转发所述分布式消息。
根据本公开的实施例,所述方法还包括;基于RS+协议使所述消息服务器的客户端在所述网关节点之间订阅主题消息,通过分布式队列维护订阅各个主题消息的客户端账户;其中,所述账户使用所述分布式队列的队列组名和所述主题消息的加权因子启动对主题消息的订阅。
根据本公开的实施例,所述预设端口包括7222端口和18001-18999端口,其中,7222端口用于监听所述分布式消息,18001-18999端口用于发送所述分布式消息,所述预设端口的实际使用数量=域中心数量+1。
本公开的第二方面提供了一种分布式消息传输装置,包括:跨域连接模块,用于在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接;消息转发模块,用于在跨域的消息服务集群的消息服务器中内置预设端口,在跨域的消息服务集群之间传输分布式消息,所述预设端口获得防火墙的允许;其中,建立所述消息服务集群跨域的网关节点的连接时,所述消息服务集群中的每个网关节点都仅连接跨域的远程消息服务集群中的单个网关节点。
本公开的第三方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现第一方面中的任一项所述分布式消息传输方法中的各个步骤。
本公开的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现第一方面提供了中的任一项所述分布式消息传输方法中的各个步骤。
在本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
本公开提供的所述分布式消息传输方法基于发布订阅的异步传输方式,在打通跨域通道时采用最少的端口数量,使用网关节点在构建多个集群构成的超集群时,对发现和连接协议做了优化,以最小的网络连接代价将多云数据中心组建起来,最终多云之间的消息传递和在一个集群中一样方便和高效。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了本公开实施例提供的一种分布式消息传输方法的示意图;
图2示意性示出了本公开实施例提供的一种gateway端口的连接流程图;
图3示意性示出了本公开实施例提供的一种跨域集群的网关节点连接示意图;
图4示意性示出了本公开实施例提供的一种跨域集群的示意图;
图5示意性示出了本公开实施例提供的一种分布式消息传输装置的结构框图;
图6示意性示出了本公开实施例提供的一种电子设备的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
图1示意性示出了本公开实施例提供的一种分布式消息传输方法的示意图。
如图1所示,本公开实施例提供了一种分布式消息传输方法,包括S110~S120。
S110,在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接。
S120,在跨域的消息服务集群的消息服务器中内置预设端口,在跨域的消息服务集群之间传输分布式消息,所述预设端口获得防火墙的允许;其中,建立所述消息服务集群跨域的网关节点的连接时,所述消息服务集群中的每个网关节点都仅连接跨域的远程消息服务集群中的单个网关节点。
具体的,gateway是两个域之间的连接通道。在本实施例中,当所述消息服务器启动后,检测所述消息服务器是否配置gateway端口;当所述消息服务器配置了gateway端口,启动一个协程检测inbound连接域内其他消息服务器发送来的网关节点,并创建outbound连接所述gateway端口中配置的远程服务器的网关节点。其中,在服务的配置文件中的gateway端口中显示配置的连接称为outbound,反之服务启动后接收到其他集群服务节点发送过来的gateway连接称为inbound。
图2示意性示出了本公开实施例提供的一种gateway端口的连接流程图。
如图2所示,网关建立连接的主体流程依次包括启动消息服务器、检查消息服务器是否配置gateway端口、启动网关连接和发现网关节点。其中,启动网关连接包含两个部分:一是启动一个协程检测inbound连接[startGatewayAcceptLoop]),二是创建outbound连接remote server[solicitGateways])。最后,网关会通过gossip发现其他网关节点和远程的网关节点。
在本实施例中,只要服务器接受来自另一台服务器的连接,它就会发送关于自身以及配置和安全需求的信息,这些信息是另一台服务器成功与服务器进行身份验证和交换消息所必需的。具体的,建立所述网关节点的连接后,发送创建连接的消息服务器的INFO消息给接收所述网关连接的消息服务器,使接收所述网关连接的消息服务器添加创建连接的消息服务器的地址及端口IP字段;通过接收所述网关连接的消息服务器将所述INFO消息转发给其他消息服务器。群集中任何收到带有IP字段的INFO消息的服务器都将尝试连接到该地址的服务器,除非已连接。传播这种代表连接服务器的INFO消息提供了对加入集群的新服务器的自动发现。
在本实施例中,INFO消息的语法定义为:
INFO{[″option_name″:option_value],...}
有效办法如下:
server_id:分布式消息服务器的唯一标识符
version:分布式消息服务器的版本
g0:分布式消息服务器构建的golang版本
host:集群参数/选项中指定的主机
port:群集参数/选项中指定的端口号
auth_required:如果设置了此选项,则服务器应尝试在连接时进行身份验证
tls_required:如果设置了此选项,则服务器必须使用TLS进行身份验证
max_payload:服务器将接受的最大有效负载大小
connect_urls:客户端可以连接到的服务器URL列表
ip:服务器的可选路由连接地地址,ms-route://<hostname>:<port>
进一步的,一旦分布式消息服务器与另一台服务器建立了TCP/IP套接字连接,并且INFO消息已接收到,服务器将发送CONNECT消息以提供有关当前连接的更多信息以及安全信息。具体的,在接收所述网关连接的消息服务器收到所述INFO消息后,向接收所述网关连接的消息服务器发送CONNECT消息,所述CONNECT消息包括所述网关节点的令牌信息及安全信息。
在本实施例中,CONNECT消息的语法定义如下:
CONNECT{[″option_name″:option_value],..}
有效参数如下:
tls_required:指示服务器是否需要SSL连接
auth_token:授权令牌
user:连接用户名(如果设置了auth_required)
pass:连接密码(如果设置了auth_required)
name:生成的服务器名称
lang:服务器的实现语言(go)
version:服务器的版本
在本实施例中,消息服务启动后,通过processConnect方法建立所述消息服务器与客户端之间的连接,且会针对每个客户端连接启动读取循环readloop,接收所述客户端的分布式消息。在协议解析模块,通过processConnect方法来处理来自客户端、网关、路由、叶子节点等的连接,网关节点之间的连接处理函数是:processGatewayConnect,它的作用其实很简单,就是标记当前的连接c.gw.connected=true,设置了连接的gateway属性为conneted,同时会在发送完connect和info后启动一个ping timer,用于gateway节点之间的健康检测。
在本实施例中,网关之间消息的订阅发布也是基于账户的,每个账户都会维系一个主题列表,一个节点对远程另外一个集群的主题感兴趣通常会发送RS+协议。基于RS+协议使所述消息服务器的客户端在所述网关节点之间订阅主题消息,通过分布式队列维护订阅各个主题消息的客户端账户;其中,所述账户使用所述分布式队列的队列组名和所述主题消息的加权因子启动对主题消息的订阅,加权因子可以为主题订阅者的数量。
RS+协议的语法可以定义为:
订阅:RS+<account><subject>\r
队列订阅:RS+<account><subject><queue><weight>\r
account:与主题兴趣关联的帐户
subject:主题
queue:可选的队列组名
weight:可选的队列组权重,表示有多少兴趣/订阅者
当服务器对给定的主题不再感兴趣时,它将由服务器发送RS-协议消息,取消订阅。
RS-协议的语法可以定义为:
订阅:RS-<account><subject>\r
account:与主题兴趣关联的帐户
subject:主题
图3示意性示出了本公开实施例提供的一种跨域集群的网关节点连接示意图。
如图3所示,图中配置的连接(服务端配置文件中显示配置的)以实线显示,发现的连接以虚线显示。网关A和C都是通过gossiping发现的,B发现了A,A发现了C。
在本实施例中,关键点在于集群中的每个节点都将连接到每个远程集群中的单个节点。在一般的集群协议中,每个节点都直接连接到所有其他节点。根据本实施例提供的方法,集群中的每个节点都将连接到每个远程集群中的单个节点,无需连接到所有节点,这大大减少了构建一个超级集群时的网络连接。下面这个图显示了使用集群协议和网关协议构建超级集群时的连接数对比,以3个集群连接为例:
集群内节点数 | 全网络连接 | 使用网关连接 |
1个 | 3个 | 6个 |
2 | 15 | 12 |
3 | 36 | 18 |
4 | 66 | 24 |
5 | 105 | 30 |
30 | 4005 | 180 |
以三个集群A、B、C且每个集群内2个节点为例对上述表格进行说明,集群A、B、C一共是6个节点,其全网络连接通道的数量是C6(2)=15,其使用网关连接的通道数量是C3(2)*2*2,其中,出站和入站所以*2,最后面的2是集群内节点数。
网关连接的通道数量的计算公式可以表达为:
CM(2)*2*N,其中,M是集群数,N内部节点数。
在集群内节点个数增加或者集群数增加时使用gateway的连接方式大大减少了网络连接。
跨域操作的一个核心操作是打通安全隔离,分布式消息在跨域的时候内置了7222端口用于监听所述分布式消息,18001-18999端口用于发送所述分布式消息,跨域的时候防火墙的出入站规则需要对这些端口添加为允许。分布式消息的在跨域端口数上进行了最小化的处理,理论上端口数=域中心个数+1。分布式消息也采用了端口的检测和复用机制。
图4示意性示出了本公开实施例提供的一种跨域集群的示意图。
如图4所示,410、420和430表示云中心,440表示网关,411表示与云中心410连接的消息服务器集群,412表示与云中心410连接的客户端,421表示与云中心420连接的消息服务器集群,422表示与云中心420连接的客户端,431表示与云中心430连接的消息服务器集群,432表示与云中心430连接的客户端。
多个跨域的集群之间构成超级集群后,两个集群之间的节点间的通信和一个集群内部一样,原来分布式消息集群之间可靠传输的方式一样适用于gateway构成的超集群之间。
本公开提供的所述分布式消息传输方法基于发布订阅的异步传输方式,在打通跨域通道时采用最少的端口数量,使用网关节点在构建多个集群构成的超集群时,对发现和连接协议做了优化,以最小的网络连接代价将多云数据中心组建起来,最终多云之间的消息传递和在一个集群中一样方便和高效。
图5示意性示出了本公开实施例提供的一种分布式消息传输装置的结构框图。
如图5所示,本公开实施例提供了一种分布式消息传输装置,包括:跨域连接模块510和消息转发模块520。
跨域连接模块510用于在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接;
消息转发模块520用于在跨域的消息服务集群的消息服务器中内置预设端口,在跨域的消息服务集群之间传输分布式消息,所述预设端口获得防火墙的允许;其中,建立所述消息服务集群跨域的网关节点的连接时,所述消息服务集群中的每个网关节点都仅连接跨域的远程消息服务集群中的单个网关节点。
可以理解的是,跨域连接模块510和消息转发模块520可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,跨域连接模块510和消息转发模块520中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,跨域连接模块510和消息转发模块520中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图6示意性示出了本公开实施例提供的一种电子设备的结构框图。
如图6所示,本实施例中所描述的电子设备,包括:电子设备600包括处理器610、计算机可读存储介质620。该电子设备600可以执行上面参考图1描述的方法,以实现对特定操作的检测。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行参考图1描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行例如上面结合图1所描述的方法流程及其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行例如上面结合图1~图2所描述的方法流程及其任何变形。
根据本发明的实施例,跨域连接模块510和消息转发模块520中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种分布式消息传输方法,其特征在于,包括:
在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接;
在跨域的消息服务集群的消息服务器中内置预设端口,在跨域的消息服务集群之间传输分布式消息,所述预设端口获得防火墙的允许;
其中,建立所述消息服务集群跨域的网关节点的连接时,所述消息服务集群中的每个网关节点都仅连接跨域的远程消息服务集群中的单个网关节点。
2.根据权利要求1所述的方法,其特征在于,所述在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接包括:
当所述消息服务器启动后,检测所述消息服务器是否配置gateway端口;
当所述消息服务器配置了gateway端口,启动一个协程检测inbound连接域内其他消息服务器发送来的网关节点,并创建outbound连接所述gateway端口中配置的远程服务器的网关节点。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
建立所述网关节点的连接后,发送创建连接的消息服务器的INFO消息给接收所述网关连接的消息服务器,使接收所述网关连接的消息服务器添加创建连接的消息服务器的地址及端口IP字段;
通过接收所述网关连接的消息服务器将所述INFO消息转发给其他消息服务器。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在接收所述网关连接的消息服务器收到所述INFO消息后,向接收所述网关连接的消息服务器发送CONNECT消息,所述CONNECT消息包括所述网关节点的令牌信息及安全信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
通过processConnect方法建立所述消息服务器与客户端之间的连接;
在所述消息服务器中启动读取循环,接收所述客户端的分布式消息,并在消息服务集群中转发所述分布式消息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括;
基于RS+协议使所述消息服务器的客户端在所述网关节点之间订阅主题消息,通过分布式队列维护订阅各个主题消息的客户端账户;
其中,所述账户使用所述分布式队列的队列组名和所述主题消息的加权因子启动对主题消息的订阅。
7.根据权利要求1所述的方法,其特征在于,所述预设端口包括7222端口和18001-18999端口,其中,7222端口用于监听所述分布式消息,18001-18999端口用于发送所述分布式消息,所述预设端口的实际使用数量=域中心数量+1。
8.一种分布式消息传输装置,其特征在于,包括:
跨域连接模块,用于在消息服务集群中的消息服务器上启用gateway通信,建立跨域的消息服务集群之间的网关节点的连接;
消息转发模块,用于在跨域的消息服务集群的消息服务器中内置预设端口,在跨域的消息服务集群之间传输分布式消息,所述预设端口获得防火墙的允许;
其中,建立所述消息服务集群跨域的网关节点的连接时,所述消息服务集群中的每个网关节点都仅连接跨域的远程消息服务集群中的单个网关节点。
9.一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1至7中的任一项所述分布式消息传输方法中的各个步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任一项所述分布式消息传输方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311395848.4A CN117411762A (zh) | 2023-10-25 | 2023-10-25 | 分布式消息传输方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311395848.4A CN117411762A (zh) | 2023-10-25 | 2023-10-25 | 分布式消息传输方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117411762A true CN117411762A (zh) | 2024-01-16 |
Family
ID=89488565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311395848.4A Pending CN117411762A (zh) | 2023-10-25 | 2023-10-25 | 分布式消息传输方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117411762A (zh) |
-
2023
- 2023-10-25 CN CN202311395848.4A patent/CN117411762A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114866521B (zh) | 会议服务器 | |
US8250214B2 (en) | System, method and computer program product for communicating with a private network | |
US9003042B2 (en) | P2P file transmission system and method | |
US20070280230A1 (en) | Method and system for service discovery across a wide area network | |
CA2408766A1 (en) | Content delivery network bypass system | |
CN102811335B (zh) | 建立视频会话的方法、设备和系统 | |
JP4575980B2 (ja) | コンピュータシステムにおける通信のための方法、システム、及びコンピュータプログラム | |
US10819761B2 (en) | Electronic device and method for controlling electronic device | |
US20190215308A1 (en) | Selectively securing a premises network | |
CN101420455A (zh) | 反向http网关数据传输系统和/或方法及其网络 | |
CN106604119B (zh) | 一种用于智能电视私有云设备的网络穿透方法及系统 | |
US11601358B2 (en) | Cross datacenter communication using a mesh gateway | |
CN109922144B (zh) | 用于处理数据的方法和装置 | |
WO2014135050A1 (zh) | 消息处理方法、装置、网关、机顶盒及网络电视系统 | |
WO2019184262A1 (zh) | 多类型媒体数据网络地址转换穿越方法、终端及系统 | |
CN105637819A (zh) | 用于传输广播数据的方法和系统 | |
CN108243026A (zh) | 局域网设备通信管理方法、系统及网关设备 | |
Karamitsios et al. | Efficient IoT data aggregation for connected health applications | |
JP2004096726A (ja) | 点対点、点対多点のインターネット接続を行なう方法 | |
US8924520B2 (en) | Method, remote access server and system for configuring a quality of service parameter | |
JP2015118478A (ja) | 通信アダプタ装置、通信システム、トンネル通信方法、及びプログラム | |
CN117411762A (zh) | 分布式消息传输方法、装置、设备及介质 | |
CN112333088B (zh) | 一种兼容性即时通信传输方法 | |
CN105827470A (zh) | 一种识别异常网络互联流量的方法及装置 | |
JP3682439B2 (ja) | データ通信システム及び方法、サーバ装置、クライアント装置、並びにプログラム |
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 |