CN113965628A - 消息调度方法、服务器和存储介质 - Google Patents
消息调度方法、服务器和存储介质 Download PDFInfo
- Publication number
- CN113965628A CN113965628A CN202011396243.3A CN202011396243A CN113965628A CN 113965628 A CN113965628 A CN 113965628A CN 202011396243 A CN202011396243 A CN 202011396243A CN 113965628 A CN113965628 A CN 113965628A
- Authority
- CN
- China
- Prior art keywords
- message
- target
- client
- topic
- socket channel
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000009826 distribution Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及微服务系统架构领域,特别涉及一种消息调度方法、服务器和存储介质,该方法包括:获取消息发送方发送的目标消息,其中,所述目标消息包括消息主题标识;当所述消息接收方为第一客户端时,基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端;当所述消息接收方为第一后台服务器时,根据所述消息主题标识将所述目标消息添加至消息队列,以使所述第一后台服务器根据所述消息主题标识从所述消息队列中获取所述目标消息。通过消息调度中心基于套接字通道将目标消息发送至客户端或根据消息主题标识将目标消息发送至后台服务器,简化了ESB的消息交互流程,有效提高了消息调度的效率。
Description
技术领域
本申请涉及微服务系统架构领域,尤其涉及一种消息调度方法、服务器和存储介质。
背景技术
在分布式系统,例如在微服务系统架构中,微服务在发送消息与接收消息时,需要在客户端与后台服务器之间进行复杂的双向异步消息交互。
在现有技术中,一般是通过设计出一个ESB(Enterprise Service Bus,企业服务总线),所有的微服务通过消息队列把消息发送至ESB,由ESB进行统一的消息分发;同时,由于众多的微服务需要投递消息到ESB,因此ESB采用线程池分发消息的并发手段,导致ESB的消息交互过程变得繁重,降低了消息调度的效率。
因此如何提高消息调度的效率成为亟需解决的问题。
发明内容
本申请提供了一种消息调度方法、服务器和存储介质,通过消息调度中心基于套接字通道将目标消息发送至客户端或根据消息主题标识将目标消息发送至后台服务器,简化了ESB的消息交互流程,有效提高了消息调度的效率。
第一方面,本申请提供了一种消息调度方法,应用于消息调度中心,所述方法包括:
获取消息发送方发送的目标消息,其中,所述目标消息包括消息主题标识;
当所述消息接收方为第一客户端时,基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端;
当所述消息接收方为第一后台服务器时,根据所述消息主题标识将所述目标消息添加至消息队列,以使所述第一后台服务器根据所述消息主题标识从所述消息队列中获取所述目标消息。
第二方面,本申请还提供了一种服务器,所述服务器为消息调度中心,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的消息调度方法。
第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的消息调度方法。
本申请公开了一种消息调度方法、服务器和存储介质,通过获取消息发送方发送的目标消息,可以得到目标消息包含的消息主题标识;通过当消息接收方为第一客户端时,基于第一客户端对应的目标套接字通道,将目标消息发送至第一客户端,实现了基于套接字通道将消息发送至客户端,无需复杂的消息交互流程;通过在消息接收方为第一后台服务器时,根据消息主题标识将目标消息添加至消息队列,可以使得第一后台服务器根据消息主题标识从消息队列中获取目标消息,简化了ESB的消息交互流程,有效提高了消息调度的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种消息调度系统的结构示意图;
图2是本申请实施例提供的另一种消息调度系统的结构示意图;
图3是本申请实施例提供的一种服务器的结构示意性框图;
图4是本申请实施例提供的一种消息调度方法的示意性流程图;
图5是本申请实施例提供的一种消息队列的结构示意图;
图6是本申请实施例提供的一种确定目标套接字通道的子步骤的示意性流程图;
图7是本申请实施例提供的一种将目标消息发送至第一客户端的子步骤的示意性流程图;
图8是本申请实施例提供的一种将目标消息添加至消息队列的子步骤的示意性流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本申请实施例提供的一种消息调度系统的结构示意图。如图1所示,消息调度系统包括消息调度中心、客户端、消息队列以及后台服务器。
示例性的,调度中心用于接收客户端发送的目标消息,将目标消息添加至消息队列,由后台服务器从消息队列中获取目标消息;调度中心还用于从消息队列中获取目标消息,将目标消息发送至客户端;其中,目标消息是后台服务器添加至消息队列的。从而实现了客户端与后台服务器之间的消息调度。
示例性的,消息调度中心可以是服务器。其中,服务器可以为独立的服务器,也可以为服务器集群。
请参阅图2,图2是本申请实施例提供的另一种消息调度系统的结构示意图。如图2所示,消息调度中心可以包括多个消息调度服务。可以理解的是,消息调度服务用于完成客户端与后台服务器之间的消息调度。
如图2所示,可以有多个客户端与后台服务器进行消息交互。其中,客户端可以包括但不限于智能手机、平板电脑、笔记本电脑和台式电脑等电子设备。示例性的,客户端可以承载于前台系统。例如,在浏览器的页面进行请求消息的过程中,浏览器可以当作前台系统,不同域名的页面可以当作不同的客户端。
示例性的,如图2所示,后台服务器可以是后台服务器集群中的其中一服务器。
示例性的,消息队列可以包括但不限于RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ以及MetaMq等等。需要说明的是,消息队列是分布式应用间交换信息的一种技术,消息队列可驻留在内存或磁盘上,队列存储消息直到消息被应用程序读取。
在一些实施例中,消息调度中心可以获取消息发送方发送的目标消息,其中,目标消息包括消息主题标识;当消息接收方为第一客户端时,消息调度中心基于第一客户端对应的目标套接字通道,将目标消息发送至第一客户端;当消息接收方为第一后台服务器时,消息调度中心根据消息主题标识将目标消息添加至消息队列,以使第一后台服务器根据消息主题标识从消息队列中获取目标消息。
请参阅图3,图3是本申请实施例提供的一种服务器的结构示意性框图。在图3中,该服务器10包括处理器11和存储器12,其中,处理器11和存储器12通过总线连接,该总线比如为I2C(Inter-integrated Circuit)总线。
其中,存储器12可以包括非易失性存储介质和内存储器。非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种消息调度方法。
处理器11用于提供计算和控制能力,支撑整个服务器10的运行。
其中,处理器11可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,所述处理器11用于运行存储在存储器12中的计算机程序,并在执行所述计算机程序时实现如下步骤:
获取消息发送方发送的目标消息,其中,所述目标消息包括消息主题标识;当所述消息接收方为第一客户端时,基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端;当所述消息接收方为第一后台服务器时,根据所述消息主题标识将所述目标消息添加至消息队列,以使所述第一后台服务器根据所述消息主题标识从所述消息队列中获取所述目标消息。
在一些实施例中,所述处理器11在实现获取消息发送方发送的目标消息时,用于实现:
当所述消息发送方为第二客户端时,接收所述第二客户端发送的所述目标消息;当所述消息发送方为第二后台服务器时,从所述消息队列中获取所述目标消息,其中,所述目标消息为所述第二后台服务器根据预设的传输策略发送至所述消息队列的。
在一些实施例中,所述处理器11在实现接收所述第二客户端发送的所述目标消息之前,还用于实现:
基于超文本传输协议,与所述客户端建立套接字通道,其中,所述套接字通道用于投递消息和接收消息。
在一些实施例中,所述处理器11在实现接收所述第二客户端发送的所述目标消息时,用于实现:
基于传输控制协议,通过所述套接字通道接收所述第二客户端发送的所述目标消息。
在一些实施例中,所述处理器11在实现从所述消息队列中获取所述目标消息之前,用于实现:
调用预先配置的软件开发工具包,获取所述软件开发工具包中的主题标识;根据所述主题标识,确定所述消息队列中的目标主题集合。
在一些实施例中,所述处理器11在实现从所述消息队列中获取所述目标消息时,用于实现:
依次将所述目标主题集合中的消息,确定为所述目标消息。
在一些实施例中,所述目标消息还包括客户端识别号;所述处理器11在实现基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端之前,还用于实现:
根据所述目标消息中的客户端识别号,确定当前与所述第一客户端连接的套接字通道;将连接的所述套接字通道,确定为所述目标套接字通道。
在一些实施例中,所述处理器11在实现基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端时,用于实现:
基于预设的数据格式,对所述目标消息进行格式处理,得到格式处理后的所述目标消息;基于传输控制协议,通过所述目标套接字通道,将格式处理后的所述目标消息发送至所述第一客户端。
在一些实施例中,所述处理器11在实现根据所述消息主题标识将所述目标消息添加至消息队列时,用于实现:
对所述消息主题标识进行封装,得到封装后的所述消息主题标识;根据封装后的所述消息主题标识,确定所述消息队列中的目标主题集合;将所述目标消息添加至所述消息队列中的所述目标主题集合中。
在一些实施例中,所述消息队列包括多个主题集合;所述处理器11在实现根据封装后的所述消息主题标识,确定所述消息队列中的目标主题集合时,用于实现:
获取所述消息队列中的所述多个主题集合对应的多个主题标识;将所述多个主题标识中与封装后的所述消息主题标识相同的主题标识对应的主题集合,确定为所述目标主题集合。
为了便于理解,以下将结合图1至图3中的消息调度中心、客户端、消息队列以及后台服务器,对本申请实施例提供的消息调度方法进行详细介绍。需知,上述的消息调度中心、客户端、消息队列以及后台服务器构成对本申请实施例提供的消息调度方法应用场景的限定。
请参阅图4,图4是本申请实施例提供的一种消息调度方法的示意性流程图。该消息调度方法可应用在消息调度中心,通过消息调度中心基于套接字通道将目标消息发送至客户端或根据消息主题标识将目标消息发送至后台服务器,简化了ESB的消息交互流程,有效提高了消息调度的效率。
如图4所示,该消息调度方法包括步骤S10至步骤S30。
步骤S10、获取消息发送方发送的目标消息,其中,所述目标消息包括消息主题标识。
需要说明的是,消息发送方可以是客户端,也可以是后台服务器集群中的任意一后台服务器。
在本申请实施例中,以消息发送方为客户端、后台服务器为例,分别进行详细说明。此外,消息接收方可以是客户端,也可以是后台服务器。可以理解的是,在客户端与后台服务器之间进行双向异步消息交互时,若消息发送方是客户端,则消息接收方是后台服务器;若消息发送方是后台服务器,则消息接收方是客户端。
示例性的,目标消息可以包括topic、event和data;其中,topic表示消息主题标识,event表示事件类型,data表示具体的数据。需要说明的是,消息主题标识用于识别目标消息对应的主题;事件类型用于消息接收方在接收到目标消息后,对目标消息执行的事件类型。
通过获取消息发送方发送的目标消息,可以得到目标消息对应的消息主题标识,后续在将目标消息发送至后台服务器时,可以根据消息主题标识确定消息队列中的目标主题集合。
在一些实施例中,获取消息发送方发送的目标消息,可以包括:当消息发送方为第二客户端时,接收第二客户端发送的目标消息。
需要说明的是,第二客户端与第一客户端可以是同一客户端,也可以是不同的客户端。可以理解的是,第二客户端发送的目标消息可以是请求消息;第一客户端接收的目标消息可以是应答消息。其中,当第一客户端与第二客户端为同一客户端时,第一客户端接收的应答消息是后台服务器根据第一客户端发送的请求消息而返回的应答的消息。
在一些实施方式中,在接收第二客户端发送的目标消息之前,还可以包括:基于超文本传输协议,与客户端建立套接字通道。
需要说明的是,超文本传输协议(Hyper Text Transfer Protocol,Http)是一种面向事务的应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式和规则,它是万维网上能够可靠交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。套接字(socket)用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。
可以理解的是,Http协议与套接字socket都应用于应用层的通信;其中,Http协议在传输消息时,每一次都需要进行3次握手和4次挥手的交互过程,而套接字socket则不需要进行3次握手和4次挥手的交互过程。
示例性的,可以在消息调度中心与客户端之间建立套接字通道;其中,套接字通道用于投递消息和接收消息。
在本申请实施例中,可以基于Http协议,消息调度中心与客户端建立套接字通道;在完成建立套接字通道之后,客户端与消息调度中心之间的发送和接收消息,不需要再进行3次握手和4次挥手的交互过程,从而极大地简化了消息交互流程,提高了消息调度的效率。
示例性的,与客户端建立套接字通道的过程可以分为:消息调度中心监听、客户端请求和连接确认。
需要说明的是,消息调度中心监听是指消息调度中心的套接字并不定位具体的客户端的套接字,而是处于等待连接的状态,实时监控网络状态。
其中,客户端请求是指由客户端的套接字提出连接请求,要连接的目标是消息调度中心的套接字。因此,客户端的套接字需要描述它要连接的消息调度中心的套接字,并指出消息调度中心的套接字对应的地址和端口号,然后向消息调度中心的套接字提出连接请求。
其中,连接确认是指当消息调度中心的套接字监听到或者接收到客户端的套接字的连接请求,它就响应客户端的套接字的请求,建立一个新的线程,把消息调度中心的套接字对应的描述信息发给客户端;当客户端确认了描述信息,连接就建立好了。而消息调度中心的套接字还可以继续处于监听状态,继续接收其他客户端的套接字的连接请求。
通过基于超文本传输协议,与客户端建立套接字通道,后续可以通过套接字通道发送和接收消息,从而极大地简化了ESB的消息交互流程,提高了消息调度的效率。
在一些实施例中,接收第二客户端发送的目标消息,可以包括:基于传输控制协议,通过套接字通道接收第二客户端发送的目标消息。
需要说明的是,传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的以及基于字节流的传输层通信协议。
在本申请实施例中,消息调度中心可以与多个客户端分别建立套接字通道,可以通过各客户端对应的套接字通道接收各客户端发送的目标消息。其中,套接字通道包括连接的客户端对应的客户端识别号。通过客户端识别号,可以确定套接字通道以及套接字通道对应的客户端。
在另一些实施例中,获取消息发送方发送的目标消息,可以包括:当消息发送方为第二后台服务器时,从消息队列中获取目标消息。
其中,目标消息为第二后台服务器根据预设的传输策略发送至消息队列的。
示例性的,预设的传输策略可以包括根据目标消息中的消息主题标识,确定消息队列中的目标主题集合,将目标消息添加至目标主题集合中。
请参阅图5,图5是本申请实施例提供的一种消息队列的结构示意图。在图5中,消息队列可以包括至少一个主题集合,每个主题集合用于存放同一主题的消息。其中,每个主题集合有对应的主题标识,例如,topic-a、topic-b、topic-c和topic-d用于表示不同的主题标识。
在一些实施例中,在从消息队列中获取目标消息之前,还可以包括:调用预先配置的软件开发工具包,获取软件开发工具包中的主题标识;根据主题标识,确定消息队列中的目标主题集合。
需要说明的是,软件开发工具包(Software Development Kit,SDK)是指用户为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。在本申请实施例中,用户可以根据微服务的名称在软件开发工具包进行主题标识的配置。软件开发工具包可以根据配置的信息生成一个用于监听消息的主题标识。其中,主题标识可以是微服务的名称。
示例性的,在消息队列中,每个主题集合对应有一个主题标识。因此,可以将与软件开发工具包的主题标识相同的主题标识对应的主题集合,确定为目标主题集合。
例如,若软件开发工具包对应的主题标识为topic-a,则可以将消息队列中的主题标识为topic-a的主题集合,确定为目标主题集合。
在一些实施例中,从消息队列中获取目标消息,可以包括:依次将目标主题集合中的消息,确定为目标消息。
示例性的,若目标主题集合中包括消息A、消息B和消息C,则可以依次将消息A、消息B和消息C作为目标消息。
通过调用预先配置的软件开发工具包,可以获取软件开发工具包中的主题标识,进而根据主题标识确定消息队列中的目标主题集合,后续可以根据消息主题标识从消息队列中获取目标消息,而不需要采用线程池分发消息的并发手段,从而减小了消息分发的延迟时间,提高了消息调度的效率。
步骤S20、当所述消息接收方为第一客户端时,基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端。
请参阅图6,图6是本申请实施例提供的一种确定目标套接字通道的子步骤的示意性流程图,具体可以包括以下步骤S201与步骤S202。
步骤S201、根据所述目标消息中的客户端识别号,确定当前与所述第一客户端连接的套接字通道。
示例性的,目标消息可以包括客户端识别号。需要说明的是,当消息接收方为第一客户端时,说明目标消息是后台服务器根据第一客户端发送的请求消息而返回的。因此,后台服务器在接收到第一客户端发送的请求消息时,可以获取第一客户端的客户端识别号;在向第一客户端返回目标消息时,可以在目标消息中添加第一客户端的客户端识别号,从而使得消息调度中心根据客户端识别号查询并投递目标消息到第一客户端。
示例性的,可以根据目标消息中的客户端识别号,查询当前与第一客户端连接的套接字通道。
可以理解的是,套接字通道的一端与消息调度中心连接,另一端与第一客户端连接。当套接字通道存在时,说明套接字通道对应的客户端在线。
步骤S202、将连接的所述套接字通道,确定为所述目标套接字通道。
需要说明的是,消息调度中心可以通过不同的套接字通道,与不同的客户端进行通信连接。例如,可以通过不同的套接字通道,与不同域名的页面进行通信连接。
示例性的,可以将当前与第一客户端连接的套接字通道,确定为目标套接字通道。例如,当前与第一客户端连接的套接字通道包括socket-1、socket-2和socket-3,则可以将socket-1、socket-2和socket-3作为目标套接字通道。
通过根据目标消息中的客户端识别号,可以确定当前与第一客户端连接的套接字通道,进而可以确定目标套接字通道。
请参阅图7,图7是本申请实施例提供的一种将目标消息发送至第一客户端的子步骤的示意性流程图,具体可以包括以下步骤S203与步骤S204。
步骤S203、基于预设的数据格式,对所述目标消息进行格式处理,得到格式处理后的所述目标消息。
示例性的,预设的数据格式可以是Json数据格式。其中,Json数据格式是指键值对的形式。需要说明的是,Json是一种基于文本,独立于语言的轻量级数据交换格式。
示例性的,可以先判断目标信息的格式类型是否为Json数据格式;若确定目标消息不是Json数据格式,则可以根据Json数据格式将目标消息格式化,得到格式处理后的目标消息。
通过基于预设的数据格式对目标消息进行格式处理,可以得到格式统一的目标消息,后续可以通过套接字通道进行发送目标消息。
步骤S204、基于传输控制协议,通过所述目标套接字通道,将格式处理后的所述目标消息发送至所述第一客户端。
示例性的,基于TCP协议,通过目标套接字通道,将格式处理后的目标消息发送至第一客户端。
例如,若目标套接字通道包括socket-1,则将格式处理后的目标消息发送至socket-1对应的页面中。若目标套接字通道还包括socket-2,则将格式处理后的目标消息发送至socket-2对应的页面中。
通过基于传输控制协议,将目标消息通过目标套接字通道发送给客户端,可以省去基于Http协议进行通信的握手与挥手的交互过程,简化了ESB的消息交互流程。
步骤S30、当所述消息接收方为第一后台服务器时,根据所述消息主题标识将所述目标消息添加至消息队列,以使所述第一后台服务器根据所述消息主题标识从所述消息队列中获取所述目标消息。
需要说明的是,在申请实施例中,当消息接收方是后台服务器时,消息调度中心并不是直接将目标消息发送给对应的后台服务器,而是将目标消息添加至消息队列中,由后台服务器根据消息主题标识从消息队列中提取目标消息。
请参阅图8,图8是步骤S30中根据消息主题标识将目标消息添加至消息队列的子步骤的示意性流程图,具体可以包括以下步骤S301至步骤S303。
步骤S301、对所述消息主题标识进行封装,得到封装后的所述消息主题标识。
示例性的,若微服务的名称为Message,则目标消息中的消息主题标识可以是Message。
例如,对消息主题标识Message进行封装,例如,对Message添加ESB、SOCKET和CONSUMER等字段,得到封装后的消息主题标识为Message_ESB_SOCKET_CONSUMER。
步骤S302、根据封装后的所述消息主题标识,确定所述消息队列中的目标主题集合。
示例性的,消息队列包括多个主题集合。
在一些实施例中,根据封装后的消息主题标识,确定消息队列中的目标主题集合,可以包括:获取消息队列中的多个主题集合对应的多个主题标识;将多个主题标识中与封装后的消息主题标识相同的主题标识对应的主题集合,确定为目标主题集合。
示例性的,消息队列中的多个主题集合对应的主题标识可以包括但不限于Message_ESB_SOCKET_CONSUMER、Production_ESB_SOCKET_CONSUMER以及Custom-application_ESB_SOCKET_CONSUMER等等。
例如,当封装后的消息主题标识为Message_ESB_SOCKET_CONSUMER时,可以将消息队列中的主题标识为Message_ESB_SOCKET_CONSUMER对应的主题集合,确定为目标主题集合。
例如,当封装后的消息主题标识为Production_ESB_SOCKET_CONSUMER时,可以将消息队列中的主题标识为Production_ESB_SOCKET_CONSUMER对应的主题集合,确定为目标主题集合。
步骤S303、将所述目标消息添加至所述消息队列中的所述目标主题集合中。
示例性的,在确定消息队列中的目标主题集合之后,可以将目标消息添加至目标主题集合中。
例如,当目标主题集合为主题标识Message_ESB_SOCKET_CONSUMER对应的主题集合时,则将目标消息添加至主题标识Message_ESB_SOCKET_CONSUMER对应的主题集合中。
又例如,当目标主题集合为主题标识Production_ESB_SOCKET_CONSUMER对应的主题集合时,则将目标消息添加至主题标识Production_ESB_SOCKET_CONSUMER对应的主题集合中。
在本申请实施例中,后台服务器集群中的多个后台服务器,可以根据消息主题标识从消息队列中获取目标消息。
需要说明的是,用户可以事先通过软件开发工具包对各个后台服务器进行消息主题标识的配置,配置后的各后台服务器对应有一个消息主题标识;各后台服务器可以监听消息队列中的不同主题集合的新增消息。当监听到主题集合中有新增消息时,各后台服务器可以根据消息主题标识从消息队列中订阅对应的消息。
示例性的,若后台服务器server_1对应的消息主题标识为topic-a,则后台服务器server_1可以根据消息主题标识topic-a订阅消息队列中的主题标识为topic-a的主题集合的消息。
示例性的,若后台服务器server_2对应的消息主题标识为topic-b,则后台服务器server_2可以根据消息主题标识topic-b,订阅消息队列中的主题标识为topic-b的主题集合的消息。
在一些实施方式中,当后台服务器从消息队列的主题集合中读取到目标消息之后,可以根据目标消息中的事件类型,对目标消息进行业务处理并生成应答消息。其中,应答消息可以包括客户端对应的客户端识别号。然后,后台服务器可以将应答消息通过消息队列,发送给消息调度中心,以使消息调度中心根据应答消息中的客户端识别号,确定当前与客户端连接的套接字通道;通过连接的套接字通道,将应答消息发送给对应的客户端。
通过对消息主题标识进行封装,可以根据封装后的消息主题标识确定消息队列中的目标主题集合,将目标消息添加至消息队列中的目标主题集合中,可以使得后台服务器根据消息主题标识从消息队列中读取对应的消息,减小了消息分发的延迟时间,进而可以提高开发效率和减低企业的运维成本。
上述实施例提供的消息调度方法,通过获取消息发送方发送的目标消息,可以得到目标消息对应的消息主题标识,后续在将目标消息发送至后台服务器时,可以根据消息主题标识确定消息队列中的目标主题集合;通过基于超文本传输协议,与客户端建立套接字通道,后续可以通过套接字通道发送和接收消息,从而极大地简化了ESB的消息交互流程,提高了消息调度的效率;通过调用预先配置的软件开发工具包,可以获取软件开发工具包中的主题标识,进而根据主题标识确定消息队列中的目标主题集合,后续可以根据消息主题标识从消息队列中获取目标消息,而不需要采用线程池分发消息的并发手段,从而减小了消息分发的延迟时间,提高了消息调度的效率;通过根据目标消息中的客户端识别号,可以确定当前与第一客户端连接的套接字通道,进而可以确定目标套接字通道;通过基于预设的数据格式对目标消息进行格式处理,可以得到格式统一的目标消息,后续可以通过套接字通道进行发送目标消息;通过基于传输控制协议,将目标消息通过目标套接字通道发送给客户端,可以省去基于Http协议进行通信的握手与挥手的交互过程,简化了ESB的消息交互流程;通过对消息主题标识进行封装,可以根据封装后的消息主题标识确定消息队列中的目标主题集合,将目标消息添加至消息队列中的目标主题集合中,可以使得后台服务器根据消息主题标识从消息队列中读取对应的消息,减小了消息分发的延迟时间,进而可以提高开发效率和减低企业的运维成本。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项消息调度方法。例如,该计算机程序被处理器加载,可以执行如下步骤:
获取消息发送方发送的目标消息,其中,所述目标消息包括消息主题标识;当所述消息接收方为第一客户端时,基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端;当所述消息接收方为第一后台服务器时,根据所述消息主题标识将所述目标消息添加至消息队列,以使所述第一后台服务器根据所述消息主题标识从所述消息队列中获取所述目标消息。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,所述计算机可读存储介质可以是前述实施例所述的服务器的内部存储单元,例如所述服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字卡(Secure Digital,SD),闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种消息调度方法,应用于消息调度中心,其特征在于,包括:
获取消息发送方发送的目标消息,其中,所述目标消息包括消息主题标识;
当所述消息接收方为第一客户端时,基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端;
当所述消息接收方为第一后台服务器时,根据所述消息主题标识将所述目标消息添加至消息队列,以使所述第一后台服务器根据所述消息主题标识从所述消息队列中获取所述目标消息。
2.根据权利要求1所述的消息调度方法,其特征在于,所述获取消息发送方发送的目标消息,包括:
当所述消息发送方为第二客户端时,接收所述第二客户端发送的所述目标消息;
当所述消息发送方为第二后台服务器时,从所述消息队列中获取所述目标消息,其中,所述目标消息为所述第二后台服务器根据预设的传输策略发送至所述消息队列的。
3.根据权利要求2所述的消息调度方法,其特征在于,所述预设的传输策略包括根据所述目标消息中的所述消息主题标识,确定所述消息队列中的目标主题集合,将所述目标消息添加至所述目标主题集合中。
4.根据权利要求2所述的消息调度方法,其特征在于,所述接收所述第二客户端发送的所述目标消息之前,还包括:
基于超文本传输协议,与所述客户端建立套接字通道,其中,所述套接字通道用于投递消息和接收消息;
所述接收所述第二客户端发送的所述目标消息,包括:
基于传输控制协议,通过所述套接字通道接收所述第二客户端发送的所述目标消息。
5.根据权利要求2所述的消息调度方法,其特征在于,所述从所述消息队列中获取所述目标消息之前,还包括:
调用预先配置的软件开发工具包,获取所述软件开发工具包中的主题标识;
根据所述主题标识,确定所述消息队列中的目标主题集合;
所述从所述消息队列中获取所述目标消息,包括:
依次将所述目标主题集合中的消息,确定为所述目标消息。
6.根据权利要求1所述的消息调度方法,其特征在于,所述目标消息还包括客户端识别号;所述基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端之前,还包括:
根据所述目标消息中的客户端识别号,确定当前与所述第一客户端连接的套接字通道;
将连接的所述套接字通道,确定为所述目标套接字通道;
所述基于所述第一客户端对应的目标套接字通道,将所述目标消息发送至所述第一客户端,包括:
基于预设的数据格式,对所述目标消息进行格式处理,得到格式处理后的所述目标消息;
基于传输控制协议,通过所述目标套接字通道,将格式处理后的所述目标消息发送至所述第一客户端。
7.根据权利要求1所述的消息调度方法,其特征在于,所述根据所述消息主题标识将所述目标消息添加至消息队列,包括:
对所述消息主题标识进行封装,得到封装后的所述消息主题标识;
根据封装后的所述消息主题标识,确定所述消息队列中的目标主题集合;
将所述目标消息添加至所述消息队列中的所述目标主题集合中。
8.根据权利要求7所述的消息调度方法,其特征在于,所述消息队列包括多个主题集合;所述根据封装后的所述消息主题标识,确定所述消息队列中的目标主题集合,包括:
获取所述消息队列中的所述多个主题集合对应的多个主题标识;
将所述多个主题标识中与封装后的所述消息主题标识相同的主题标识对应的主题集合,确定为所述目标主题集合。
9.一种服务器,其特征在于,所述服务器为消息调度中心,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至8中任一项所述的消息调度方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现:
如权利要求1至8中任一项所述的消息调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011396243.3A CN113965628B (zh) | 2020-12-03 | 2020-12-03 | 消息调度方法、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011396243.3A CN113965628B (zh) | 2020-12-03 | 2020-12-03 | 消息调度方法、服务器和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965628A true CN113965628A (zh) | 2022-01-21 |
CN113965628B CN113965628B (zh) | 2024-07-30 |
Family
ID=79459225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011396243.3A Active CN113965628B (zh) | 2020-12-03 | 2020-12-03 | 消息调度方法、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965628B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150380A (zh) * | 2022-06-30 | 2022-10-04 | 广发证券股份有限公司 | 一种适用于多路行情源的行情订阅及发布方法及装置 |
CN115174472A (zh) * | 2022-07-18 | 2022-10-11 | 天翼云科技有限公司 | 一种消息转发处理方法及相关装置 |
CN115297164A (zh) * | 2022-07-06 | 2022-11-04 | 珠海格力电器股份有限公司 | 网络代理方法、装置、电子设备及计算机可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100280903A1 (en) * | 2009-04-30 | 2010-11-04 | Microsoft Corporation | Domain classification and content delivery |
US20110072073A1 (en) * | 2009-09-21 | 2011-03-24 | Sling Media Inc. | Systems and methods for formatting media content for distribution |
CN103338160A (zh) * | 2013-07-19 | 2013-10-02 | 天津汉柏信息技术有限公司 | 基于缓存队列的轮询业务的优化系统及优化方法 |
CN104426800A (zh) * | 2013-08-22 | 2015-03-18 | 塔塔顾问服务有限公司 | 用于在对等通信网络中管理消息队列的系统和方法 |
CN107332787A (zh) * | 2017-06-29 | 2017-11-07 | 北京奇艺世纪科技有限公司 | 一种消息分发方法和装置 |
US20180115523A1 (en) * | 2016-10-26 | 2018-04-26 | Elastic Beam, Inc. | Methods and systems for api deception environment and api traffic control and security |
CN110324405A (zh) * | 2019-05-29 | 2019-10-11 | 北京奇艺世纪科技有限公司 | 消息发送方法、装置、系统及计算机可读存储介质 |
CN110633442A (zh) * | 2019-08-19 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 一种推送方法、装置及电子设备 |
KR102130005B1 (ko) * | 2020-04-17 | 2020-07-03 | 국방과학연구소 | 응용프로그램 간 데이터 전송 지원 방법 및 이를 위한 서버 |
CN112019625A (zh) * | 2020-08-31 | 2020-12-01 | 重庆紫光华山智安科技有限公司 | 基于websocket消息推送方法、系统、设备及介质 |
-
2020
- 2020-12-03 CN CN202011396243.3A patent/CN113965628B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100280903A1 (en) * | 2009-04-30 | 2010-11-04 | Microsoft Corporation | Domain classification and content delivery |
US20110072073A1 (en) * | 2009-09-21 | 2011-03-24 | Sling Media Inc. | Systems and methods for formatting media content for distribution |
CN103338160A (zh) * | 2013-07-19 | 2013-10-02 | 天津汉柏信息技术有限公司 | 基于缓存队列的轮询业务的优化系统及优化方法 |
CN104426800A (zh) * | 2013-08-22 | 2015-03-18 | 塔塔顾问服务有限公司 | 用于在对等通信网络中管理消息队列的系统和方法 |
US20180115523A1 (en) * | 2016-10-26 | 2018-04-26 | Elastic Beam, Inc. | Methods and systems for api deception environment and api traffic control and security |
CN107332787A (zh) * | 2017-06-29 | 2017-11-07 | 北京奇艺世纪科技有限公司 | 一种消息分发方法和装置 |
CN110324405A (zh) * | 2019-05-29 | 2019-10-11 | 北京奇艺世纪科技有限公司 | 消息发送方法、装置、系统及计算机可读存储介质 |
CN110633442A (zh) * | 2019-08-19 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 一种推送方法、装置及电子设备 |
KR102130005B1 (ko) * | 2020-04-17 | 2020-07-03 | 국방과학연구소 | 응용프로그램 간 데이터 전송 지원 방법 및 이를 위한 서버 |
CN112019625A (zh) * | 2020-08-31 | 2020-12-01 | 重庆紫光华山智安科技有限公司 | 基于websocket消息推送方法、系统、设备及介质 |
Non-Patent Citations (1)
Title |
---|
戴大蒙;: "基于非阻塞式Winsock的多线程网络通信机制", 计算机工程, no. 06 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150380A (zh) * | 2022-06-30 | 2022-10-04 | 广发证券股份有限公司 | 一种适用于多路行情源的行情订阅及发布方法及装置 |
CN115297164A (zh) * | 2022-07-06 | 2022-11-04 | 珠海格力电器股份有限公司 | 网络代理方法、装置、电子设备及计算机可读存储介质 |
CN115174472A (zh) * | 2022-07-18 | 2022-10-11 | 天翼云科技有限公司 | 一种消息转发处理方法及相关装置 |
CN115174472B (zh) * | 2022-07-18 | 2024-01-02 | 天翼云科技有限公司 | 一种消息转发处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113965628B (zh) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113965628B (zh) | 消息调度方法、服务器和存储介质 | |
CN112104754B (zh) | 网络代理方法、系统、装置、设备及存储介质 | |
CN109995801B (zh) | 一种消息传输方法和装置 | |
US20190132276A1 (en) | Unified event processing for data/event exchanges with existing systems | |
TW202038581A (zh) | 管理用戶端、設備監控系統及方法 | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN102904959A (zh) | 网络加速方法和网关 | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN109271259B (zh) | 企业服务总线系统、数据处理方法、终端及存储介质 | |
WO2021051881A1 (zh) | Vpp 集群管理方法及装置、计算机设备及存储介质 | |
CN111049915B (zh) | 一种容器云下消息队列代理系统及方法 | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
US9614900B1 (en) | Multi-process architecture for a split browser | |
CN115562887A (zh) | 基于数据组包的核间数据通信方法、系统、设备及介质 | |
CN113342503B (zh) | 实时进度反馈方法、装置、设备及存储介质 | |
CN114371935A (zh) | 网关处理方法、网关、设备及介质 | |
CN112084042A (zh) | 一种消息处理的方法和装置 | |
CN115378922B (zh) | 一种支持app互联互通的嵌入式操作系统软件接口方法 | |
CN115225706B (zh) | 数据传输方法、装置、车辆以及存储介质 | |
CN115914319A (zh) | 一种虚拟现实设备的远程管理方法和系统 | |
CN115994156A (zh) | 用于实时分析数据流的方法和系统 | |
CN113726723B (zh) | 基于udp的数据传输方法、装置及设备 | |
CN115250276A (zh) | 分布式系统及数据处理的方法和装置 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240620 Address after: Room 1404, No. 266 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province, 510700 Applicant after: Guangdong Guilai Technology Co.,Ltd. Country or region after: China Address before: 510700 601, area C1, 182 Kexue Avenue, Huangpu District, Guangzhou City, Guangdong Province Applicant before: Guangzhou sandianjiyuan Intelligent Technology Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |