CN106899605B - 基于stomp协议的通信方法和装置 - Google Patents
基于stomp协议的通信方法和装置 Download PDFInfo
- Publication number
- CN106899605B CN106899605B CN201710153074.2A CN201710153074A CN106899605B CN 106899605 B CN106899605 B CN 106899605B CN 201710153074 A CN201710153074 A CN 201710153074A CN 106899605 B CN106899605 B CN 106899605B
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- forwarded
- node
- protocol
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出一种基于STOMP协议的通信方法和装置,该方法包括根据待转发消息确定目的客户端的标识,获取集群中节点服务器的个数,在个数小于或等于预设阈值时,基于第一队列将待转发消息发送到集群中全部的节点服务器中,其中,第一队列为用于广播基于STOMP协议的消息的队列;在个数大于预设阈值时,根据预存的对应关系表确定与标识对应的节点服务器的编号;基于与编号对应的第二队列将待转发消息发送至与编号对应的节点服务器,其中,第二队列为用于单播基于STOMP协议的消息的队列,以使节点服务器根据目的客户端的标识将待转发消息转发至目的客户端。通过本发明能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于STOMP协议的通信方法和装置。
背景技术
STOMP(Simple Text Orientated Messaging Protocol,简单(流)文本定向消息协议)协议是一种长连接全双工通信领域的一种通信协议,该协议简洁、易实现,但是,该协议在实现会对每一个订阅都单独创建队列,例如,用户在登录客户端后,可以建立链路连接,在该链路连接上进行了10次订阅(例如,可以包括topic、queue),那么在对应的STOMP协议实现侧,即基于STOMP协议的消息代理,则需要创建10个队列。
这种方式下,每个长连接需创建较多队列,但是大部分队列处于空等状态,而通信系统仍然对这些队列进行监听和处理,通信链路所占用的内存和CPU较多,通信系统不够稳定。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于STOMP协议的通信方法,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
本发明的另一个目的在于提出一种基于STOMP协议的通信装置。
为达到上述目的,本发明第一方面实施例提出的基于STOMP协议的通信方法,包括:在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数,以及判断所述个数是否小于或者等于预设阈值;在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。
在本发明的一个实施例中,在所述接收到客户端发送的待转发消息之前,还包括:
建立所述集群服务器中的多个节点服务器和多个客户端之间的链路连接;
记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。
在本发明的一个实施例中,还包括:
获取所述目的客户端的标识,并将所述目的客户端的标识和与所述目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表;
对所述对应关系表进行保存。
在本发明的一个实施例中,在所述接收到客户端发送的待转发消息之前,还包括:
建立所述每个节点服务器与基于STOMP协议的消息代理之间的链路连接;
在建立所述链路连接之后,基于所述链路连接生成所述第一队列,并基于所述链路连接生成与每个编号对应的第二队列。
在本发明的一个实施例中,所述链路连接为长连接。
本发明第一方面实施例提出的基于STOMP协议的通信方法,通过根据待转发消息确定目的客户端的标识,并判断集群中节点服务器的个数是否小于或者等于预设阈值,若是,则基于用于广播基于STOMP协议的消息的队列将待转发消息发送到服务器集群中全部的节点服务器中,若否,则根据预存的对应关系表确定与标识对应的节点服务器的编号,基于与编号对应的用于单播基于STOMP协议的消息的队列将待转发消息发送至与编号对应的节点服务器中,由于在节点服务器个数大于预设阈值时,不需要广播基于STOMP协议的消息,因此,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
为达到上述目的,本发明第二方面实施例提出的基于STOMP协议的通信装置,包括:第一获取模块,用于在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数;判断模块,用于判断所述个数是否小于或者等于预设阈值;第一发送模块,用于在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;确定模块,用于在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;第二发送模块,用于基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。
在本发明的一个实施例中,还包括:
第一建立模块,用于建立所述集群服务器中的多个节点服务器和多个客户端之间的链路连接;
记录模块,用于记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。
在本发明的一个实施例中,还包括:
第二获取模块,用于获取所述目的客户端的标识;
第一生成模块,用于将所述目的客户端的标识和与所述目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表;
保存模块,用于对所述对应关系表进行保存。
在本发明的一个实施例中,还包括:
第二建立模块,用于建立所述每个节点服务器与基于STOMP协议的消息代理之间的链路连接;
第二生成模块,用于在建立所述链路连接之后,基于所述链路连接生成所述第一队列,并基于所述链路连接生成与每个编号对应的第二队列。
在本发明的一个实施例中,所述链路连接为长连接。
本发明第二方面实施例提出的基于STOMP协议的通信装置,通过根据待转发消息确定目的客户端的标识,并判断集群中节点服务器的个数是否小于或者等于预设阈值,若是,则基于用于广播基于STOMP协议的消息的队列将待转发消息发送到服务器集群中全部的节点服务器中,若否,则根据预存的对应关系表确定与标识对应的节点服务器的编号,基于与编号对应的用于单播基于STOMP协议的消息的队列将待转发消息发送至与编号对应的节点服务器中,由于在节点服务器个数大于预设阈值时,不需要广播基于STOMP协议的消息,因此,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的基于STOMP协议的通信方法的流程示意图;
图2为相关技术中消息代理转发消息的框架示意图;
图3为本发明实施例中消息代理转发消息的框架示意图;
图4是本发明另一实施例提出的基于STOMP协议的通信方法的流程示意图;
图5是本发明一实施例提出的基于STOMP协议的通信装置的结构示意图;
图6是本发明另一实施例提出的基于STOMP协议的通信装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的基于STOMP协议的通信方法的流程示意图。
本实施例以该基于STOMP协议的通信方法被配置为基于STOMP协议的通信装置中来举例说明。
该基于STOMP协议的通信装置可以例如,设置在基于STOMP协议的消息代理中,例如,RabbitMQ,其是一个开源消息队列系统,或者,ActiveMQ,其是一个开源消息总线,对此不作限制。
本发明实施例中的基于STOMP协议的通信方法,可以应用在基于服务器集群对消息进行转发的过程中,例如,用户在登录客户端后,可以建立客户端与集群服务器之间的链路连接,在该链路连接上触发通信,对此不作限制。
本实施例的执行主体可以例如为,基于STOMP协议的消息代理,对此不作限制。
参见图1,该基于STOMP协议的通信方法包括:
S11:在接收到客户端发送的待转发消息时,根据待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数,以及判断个数是否小于或者等于预设阈值。
在本发明的实施例中,该待转发消息可以例如为用户在登录客户端后,基于对公众号的订阅所触发的,该待转发消息可以基于STMOP协议,基于STOMP协议的消息代理可以基于服务器集群对该待转发消息进行转发,对此不作限制。
例如,在接收到客户端发送的待转发消息时,可以对待转发消息进行解析,从中确定目的客户端的标识。
在本发明的实施例中,可以将服务器集群中节点服务器的个数与预设阈值作比对,根据比对结果触发后续选取不同的队列对待转发消息进行转发,对此不作限制。
在本发明的实施例中,预设阈值可以为预先配置的,例如,可以根据外部指令对预设阈值进行配置,例如,可以将预设阈值配置为10个,其中,外部指令可以是由基于STOMP协议的消息代理的项目开发人员依据服务器集群的性能所生成的,对此不作限制。
相关技术中,参见图2,图2为相关技术中消息代理转发消息的框架示意图,其中,包括,多个客户端21、服务器集群22、消息代理23,以及通信链路24,服务器集群22中包括多个节点服务器,消息代理23在对消息进行转发的过程中,基于预先与每个节点服务器建立的通信链路广播基于STOMP协议的消息,因此,需要对每个通信链路上的队列进行监听和处理,通信链路所占用的内存和CPU较多,通信系统不够稳定。
而本发明的实施例中,参见图3,图3为本发明实施例中消息代理转发消息的框架示意图,其中,包括多个客户端31、服务器集群32、消息代理33,以及通信链路34,服务器集群32中包括多个节点服务器,消息代理33在对消息进行转发的过程中,基于节点服务器的个数确定是否广播基于STOMP协议的消息,因此,在节点服务器的个数较大时,不需要对每个通信链路上的队列进行监听和处理,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
进一步地,例如,参见图2和图3,消息代理在对消息进行转发的过程中,服务器集群与消息代理之间的通信链路上的队列个数,由N:N:(N*X)变换为N:1:1,即,将原来每一个订阅都对应一个队列的结构,变换为消息代理内部记录订阅信息与通信链路的对应信息,不需要广播基于STOMP协议的订阅信息,使得原来M*X个队列减小为每个节点服务器对应的两个队列:用于广播基于STOMP协议的消息的第一队列、用于单播基于STOMP协议的消息的第二队列,极大地减小了时间复杂度和空间复杂度。
一些实施例,参见图4,在步骤S11之前还可以包括:
S41:启动节点服务器,并对每个节点服务器配置编号。
可选地,在本发明的实施例中,可以在启动集群中的节点服务器之后,对每个节点服务器配置编号,或者,也可以基于每个节点服务器的唯一标识码进行标记,对此不作限制。
通过对每个节点服务器配置编号之后,在消息转发过程中,可以基于待转发消息确定该编号对应的节点服务器,能够减小通信时间复杂度,有效保障通信的精准度。
例如,假设服务器集群中节点服务器的个数为N,在启动节点服务器后,可以对每个节点服务器配置编号,例如,nodeNumberi,其中,i=1,2,…,N,N为正整数。
S42:建立每个节点服务器与基于STOMP协议的消息代理之间的链路连接,并在建立链路连接之后,基于链路连接生成第一队列,并基于链路连接生成与每个编号对应的第二队列。
在本发明的实施例中,第一队列为用于广播基于STOMP协议的消息的队列,例如,可以标记为broadcast_queue,第二队列为用于单播基于STOMP协议的消息的队列,例如,可以标记为Ai_queue,其中,i=1,2,…,N,N为节点服务器的个数。
优选的,该链路连接是长连接。链路连接分为长连接和短连接,短连接是指通信双方每次有数据交互时,就建立一次连接,本次数据发送完成后,则断开此连接,当下次再有数据交互时重新建立连接和数据交互;长连接是指通信双方在本次数据发送完成后,也保持连接,下次可以直接用该连接传输数据而不需要重新建立连接。
本发明的实施例中,每个节点服务器对应一个基于STOMP协议的与消息代理的长连接,能够大大减小通信系统中文件描述符的使用数量,进一步减小通信链路所占用的内存和CPU。
例如,可以在每个节点服务器与基于STOMP协议的消息代理之间的链路连接中生成一个所有节点服务器都相同的广播队列broadcast_queue,用于广播基于STOMP协议的消息,并基于该链路连接生成与每个编号对应的第二队列,例如,可以在该链路连接中生成每个节点服务器都不同的单播队列Ai_queue,其中,i=1,2,…,N,用于单播基于STOMP协议的消息。
S43:建立集群服务器中的多个节点服务器和多个客户端之间的链路连接,记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。
S42与S43-S45之间无时序限定关系。
其中,可以采用相关技术建立集群服务器中的多个节点服务器和多个客户端之间的链路连接,对此不作限制。
进一步地,可以记录当前与客户端所连接的多个节点服务器中每个节点服务器的编号nodeNumberi,以使后续可以基于待转发消息确定该编号对应的节点服务器,能够减小通信时间复杂度,有效保障通信的精准度。
S44:获取目的客户端的标识,并将目的客户端的标识和与目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表。
在本发明的实施例中,目的客户端的标识可以用于唯一标识该目的客户端。
可选地,通过生成目的客户端的标识与每个节点服务器的编号之间的对应关系表,由于该对应关系表是预先建立的,因而能够有效减小通信时间复杂度,且提升通信系统的稳定性。
S45:对对应关系表进行保存。
可选地,可以将该对应关系表保存至数据库中,以便基于目的客户端的标识确定对应的节点服务器的编号,提升方法的适用性。
本实施例中,通过对每个节点服务器配置编号之后,在消息转发过程中,可以基于待转发消息确定该编号对应的节点服务器,能够减小通信时间复杂度,有效保障通信的精准度。每个节点服务器对应一个基于STOMP协议的与消息代理的长连接,能够大大减小通信系统中文件描述符的使用数量,进一步减小通信链路所占用的内存和CPU。通过记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号,以使后续可以基于待转发消息确定该编号对应的节点服务器,能够减小通信时间复杂度,有效保障通信的精准度。通过生成目的客户端的标识与每个节点服务器的编号之间的对应关系表,由于该对应关系表是预先建立的,因而能够有效减小通信时间复杂度,且提升通信系统的稳定性。通过将该对应关系表保存至数据库中,以便基于目的客户端的标识确定对应的节点服务器的编号,提升方法的适用性。
S12:在个数小于或者等于预设阈值时,基于第一队列将待转发消息发送到服务器集群中全部的节点服务器中,其中,第一队列为用于广播基于STOMP协议的消息的队列,以使节点服务器根据目的客户端的标识将待转发消息转发至目的客户端。
在本发明的实施例中,预设阈值可以为预先配置的,例如,可以根据外部指令对预设阈值进行配置,例如,可以将预设阈值配置为10个,其中,外部指令可以是由基于STOMP协议的消息代理的项目开发人员依据服务器集群的性能所生成的,对此不作限制。
例如,在节点服务器的个数N小于或者等于10个时,可以使用第一队列broadcast_queue将待转发消息广播至服务器集群中全部的节点服务器nodeNumberi中,此时,由于服务器集群的规模的节点规模较小,因此,在广播待转发消息时,能够保障通信系统的稳定性。
S13:在个数大于预设阈值时,根据预存的对应关系表确定与标识对应的节点服务器的编号。
可选地,在服务器集群中节点服务器的个数大于或者等于预设阈值时,可以根据预存的对应关系表确定与标识对应的节点服务器的编号,例如为nodeNumberi,此时,由于服务器集群的规模的节点规模较大,因此,不需要广播待转发消息时,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度。
S14:基于与编号对应的第二队列将待转发消息发送至与编号对应的节点服务器,其中,第二队列为用于单播基于STOMP协议的消息的队列,以使节点服务器根据目的客户端的标识将待转发消息转发至目的客户端。
本实施例中,通过根据待转发消息确定目的客户端的标识,并判断集群中节点服务器的个数是否小于或者等于预设阈值,若是,则基于用于广播基于STOMP协议的消息的队列将待转发消息发送到服务器集群中全部的节点服务器中,若否,则根据预存的对应关系表确定与标识对应的节点服务器的编号,基于与编号对应的用于单播基于STOMP协议的消息的队列将待转发消息发送至与编号对应的节点服务器中,由于在节点服务器个数大于预设阈值时,不需要广播基于STOMP协议的消息,因此,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
图5是本发明一实施例提出的基于STOMP协议的通信装置的结构示意图。该基于STOMP协议的通信装置500可以通过软件、硬件或者两者的结合实现。
参见图5,该基于STOMP协议的通信装置500可以包括:第一获取模块501、判断模块502、第一发送模块503、确定模块504、第二发送模块505。其中,
第一获取模块501,用于在接收到客户端发送的待转发消息时,根据待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数。
判断模块502,用于判断个数是否小于或者等于预设阈值。
第一发送模块503,用于在个数小于或者等于预设阈值时,基于第一队列将待转发消息发送到服务器集群中全部的节点服务器中,其中,第一队列为用于广播基于STOMP协议的消息的队列,以使节点服务器根据目的客户端的标识将待转发消息转发至目的客户端。
确定模块504,用于在个数大于预设阈值时,根据预存的对应关系表确定与标识对应的节点服务器的编号。
第二发送模块505,用于基于与编号对应的第二队列将待转发消息发送至与编号对应的节点服务器,其中,第二队列为用于单播基于STOMP协议的消息的队列,以使节点服务器根据目的客户端的标识将待转发消息转发至目的客户端
一些实施例中,参见图6,该基于STOMP协议的通信装置500还可以包括:
第一建立模块506,用于建立集群服务器中的多个节点服务器和多个客户端之间的链路连接。
可选地,链路连接为长连接。
记录模块507,用于记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。
第二获取模块508,用于获取目的客户端的标识。
第一生成模块509,用于将目的客户端的标识和与目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表。
保存模块510,用于对对应关系表进行保存。
第二建立模块511,用于建立每个节点服务器与基于STOMP协议的消息代理之间的链路连接。
第二生成模块512,用于在建立链路连接之后,基于链路连接生成第一队列,并基于链路连接生成与每个编号对应的第二队列。
需要说明的是,前述图1-图4实施例中对基于STOMP协议的通信方法实施例的解释说明也适用于该基于STOMP协议的通信装置500,其实现原理类似,此处不再赘述。
本实施例中,通过根据待转发消息确定目的客户端的标识,并判断集群中节点服务器的个数是否小于或者等于预设阈值,若是,则基于用于广播基于STOMP协议的消息的队列将待转发消息发送到服务器集群中全部的节点服务器中,若否,则根据预存的对应关系表确定与标识对应的节点服务器的编号,基于与编号对应的用于单播基于STOMP协议的消息的队列将待转发消息发送至与编号对应的节点服务器中,由于在节点服务器个数大于预设阈值时,不需要广播基于STOMP协议的消息,因此,能够减小通信链路所占用的内存和CPU,减小通信时间复杂度,提升通信系统的稳定性。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于STOMP协议的通信方法,其特征在于,包括以下步骤:
在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数,以及判断所述个数是否小于或者等于预设阈值;
在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;
在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;
基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。
2.如权利要求1所述的基于STOMP协议的通信方法,其特征在于,在所述接收到客户端发送的待转发消息之前,还包括:
建立所述集群服务器中的多个节点服务器和多个客户端之间的链路连接;
记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。
3.如权利要求2所述的基于STOMP协议的通信方法,其特征在于,还包括:
获取所述目的客户端的标识,并将所述目的客户端的标识和与所述目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表;
对所述对应关系表进行保存。
4.如权利要求1所述的基于STOMP协议的通信方法,其特征在于,在所述接收到客户端发送的待转发消息之前,还包括:
建立所述每个节点服务器与基于STOMP协议的消息代理之间的链路连接;
在建立所述链路连接之后,基于所述链路连接生成所述第一队列,并基于所述链路连接生成与每个编号对应的第二队列。
5.如权利要求2或4所述的基于STOMP协议的通信方法,其特征在于,所述链路连接为长连接。
6.一种基于STOMP协议的通信装置,其特征在于,包括:
第一获取模块,用于在接收到客户端发送的待转发消息时,根据所述待转发消息确定目的客户端的标识,并获取服务器集群中节点服务器的个数;
判断模块,用于判断所述个数是否小于或者等于预设阈值;
第一发送模块,用于在所述个数小于或者等于所述预设阈值时,基于第一队列将所述待转发消息发送到所述服务器集群中全部的节点服务器中,其中,所述第一队列为用于广播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端;
确定模块,用于在所述个数大于所述预设阈值时,根据预存的对应关系表确定与所述标识对应的节点服务器的编号;
第二发送模块,用于基于与所述编号对应的第二队列将所述待转发消息发送至与所述编号对应的节点服务器,其中,所述第二队列为用于单播基于STOMP协议的消息的队列,以使所述节点服务器根据所述目的客户端的标识将所述待转发消息转发至所述目的客户端。
7.如权利要求6所述的基于STOMP协议的通信装置,其特征在于,还包括:
第一建立模块,用于建立所述集群服务器中的多个节点服务器和多个客户端之间的链路连接;
记录模块,用于记录与每个客户端所连接的多个节点服务器中每个节点服务器的编号。
8.如权利要求7所述的基于STOMP协议的通信装置,其特征在于,还包括:
第二获取模块,用于获取所述目的客户端的标识;
第一生成模块,用于将所述目的客户端的标识和与所述目的客户端所连接的多个节点服务器中,每个节点服务器的编号生成对应关系表;
保存模块,用于对所述对应关系表进行保存。
9.如权利要求6所述的基于STOMP协议的通信装置,其特征在于,还包括:
第二建立模块,用于建立所述每个节点服务器与基于STOMP协议的消息代理之间的链路连接;
第二生成模块,用于在建立所述链路连接之后,基于所述链路连接生成所述第一队列,并基于所述链路连接生成与每个编号对应的第二队列。
10.如权利要求7或9所述的基于STOMP协议的通信装置,其特征在于,所述链路连接为长连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710153074.2A CN106899605B (zh) | 2017-03-15 | 2017-03-15 | 基于stomp协议的通信方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710153074.2A CN106899605B (zh) | 2017-03-15 | 2017-03-15 | 基于stomp协议的通信方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106899605A CN106899605A (zh) | 2017-06-27 |
CN106899605B true CN106899605B (zh) | 2020-03-20 |
Family
ID=59192299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710153074.2A Active CN106899605B (zh) | 2017-03-15 | 2017-03-15 | 基于stomp协议的通信方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106899605B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI678087B (zh) * | 2018-11-22 | 2019-11-21 | 財團法人工業技術研究院 | 訊息佇列發佈與訂閱之同步方法及其系統 |
CN111083193A (zh) * | 2019-11-11 | 2020-04-28 | 厦门网宿有限公司 | 长连接消息发送方法、服务器及存储介质 |
CN111580993B (zh) * | 2020-05-11 | 2024-05-17 | 广州虎牙信息科技有限公司 | 数据处理方法和装置、电子设备及存储介质 |
CN111917562B (zh) * | 2020-07-31 | 2022-09-02 | 广州市百果园信息技术有限公司 | 广播消息转发方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1065857A2 (en) * | 1999-05-26 | 2001-01-03 | Hewlett-Packard Company | Method for quick identification of special data packets |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1414186B1 (en) * | 2000-01-17 | 2006-09-27 | EGC & C Co., Ltd | System and method for providing internet broadcasting data based on hierarchical structure |
CN101753534B (zh) * | 2008-12-10 | 2014-06-25 | 徐文祥 | 基于集群服务器的分区自适应网络系统及其构建方法 |
CN102215174A (zh) * | 2011-07-14 | 2011-10-12 | 丁泉龙 | 自适应多媒体流链路传输方法 |
CN104079389A (zh) * | 2013-03-25 | 2014-10-01 | 株式会社Ntt都科摩 | 移动广播业务的重传方法 |
-
2017
- 2017-03-15 CN CN201710153074.2A patent/CN106899605B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1065857A2 (en) * | 1999-05-26 | 2001-01-03 | Hewlett-Packard Company | Method for quick identification of special data packets |
Also Published As
Publication number | Publication date |
---|---|
CN106899605A (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10736078B1 (en) | Dynamic muting of communication notifications | |
CN111711663A (zh) | 发布及订阅服务的处理方法、装置及电子设备 | |
CN106899605B (zh) | 基于stomp协议的通信方法和装置 | |
JP2014523568A (ja) | 効率的な状態調整 | |
KR20110076954A (ko) | 저자원 장치에서의 최적화 폴링 | |
US8990331B2 (en) | Method, apparatus and system for sharing a microblog message | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
TWI740210B (zh) | 終端設備管理方法及伺服器 | |
CN111277483B (zh) | 一种多端消息的同步方法、服务器及可存储介质 | |
US9503485B1 (en) | Connecting communicating devices in a multi-server communication system | |
CN108289055B (zh) | 一种基于Redis订阅服务的分布式实时聊天系统及方法 | |
CN114827171B (zh) | 信息同步方法、装置、计算机设备和存储介质 | |
US20200403850A1 (en) | Facilitating resilient and fault tolerant asynchronous messaging | |
US20210314406A1 (en) | Communication Method and System under Micro-Service Architecture | |
WO2014187397A1 (zh) | 多媒体消息的发布方法及装置 | |
US10268532B2 (en) | Application message processing system, method, and application device | |
CN105281940B (zh) | 一种基于netconf协议的hello报文交互的方法、设备和系统 | |
US10063648B2 (en) | Relaying mobile communications | |
US11863368B2 (en) | Method and apparatus for subscribing to event streams | |
US11888688B2 (en) | Configuration information subscription method and apparatus | |
CN116261065A (zh) | 基于消息队列遥测传输协议的通信方法、设备及存储介质 | |
CN112165531A (zh) | 基于监听设备端口实现的通信方法、设备和存储介质 | |
CN115834691B (zh) | 分布式发布订阅方法、装置、电子设备及存储介质 | |
CN117271152B (zh) | 应用实例信息的注册和查询方法 | |
CN114500660B (zh) | 请求处理方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |