CN110365802B - 一种消息传输方法、消息转发设备及存储介质 - Google Patents

一种消息传输方法、消息转发设备及存储介质 Download PDF

Info

Publication number
CN110365802B
CN110365802B CN201910789394.6A CN201910789394A CN110365802B CN 110365802 B CN110365802 B CN 110365802B CN 201910789394 A CN201910789394 A CN 201910789394A CN 110365802 B CN110365802 B CN 110365802B
Authority
CN
China
Prior art keywords
message
transmitted
communication link
queue middleware
target
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
Application number
CN201910789394.6A
Other languages
English (en)
Other versions
CN110365802A (zh
Inventor
吴洋洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai IQIYI New Media Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910789394.6A priority Critical patent/CN110365802B/zh
Publication of CN110365802A publication Critical patent/CN110365802A/zh
Application granted granted Critical
Publication of CN110365802B publication Critical patent/CN110365802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供一种消息传输方法、消息转发设备及存储介质,在接收到待传输消息的情况下,能够通过一条处于持续连接状态的通信链路传输待传输消息,以使得通过处于持续连接状态的通信链路传输至少部分待传输消息,相对于现有技术来说降低通信链路的建立和断开的频率,由此可以降低资源开销。并且当有大量待传输消息需要传输时可复用同一条通信链路,以此降低需要建立的通信链路的数量,相对于现有技术中每个待传输消息对应一条通信链路的方式来说,通信链路建立能够使用的资源增加,进而提高通信链路建立效率。

Description

一种消息传输方法、消息转发设备及存储介质
技术领域
本发明属于消息处理技术领域,更具体地说,尤其涉及一种消息传输方法、消息转发设备及存储介质。
背景技术
目前终端之间可通过消息转发设备进行消息传输,如终端预先与消息转发设备建立通信链路,通过该通信链路将消息从一个终端传输至另一个终端,在消息传输完成后断开与消息转发设备建立的通信链路,若终端继续传输其他消息则需要重新与消息转发设备建立通信链路,这种每传输一个消息均需要建立和断开通信链路的方式会增加资源开销,如增加网络资源和服务器资源的开销。并且当有大量消息需要传输时会存在通信链路建立效率低的问题,如增加通信链路耗时。
发明内容
有鉴于此,本发明的目的在于提供一种消息传输方法、消息转发设备及存储介质,用于降低资源开销和提高通信链路建立效率时。技术方案如下:
本发明提供一种消息传输方法,所述方法应用于消息转发设备,所述消息转发设备运行第一队列中间件以及第二队列中间件,所述方法包括:
所述第一队列中间件接收待传输消息;
所述第一队列中间件从第二队列中间件中确定用于转发所述待传输消息的目标第二队列中间件;
建立所述第一队列中间件与所述目标第二队列中间件之间处于持续连接状态的通信链路;
所述第一队列中间件通过所述通信链路向所述目标第二队列中间件发送所述待传输消息;
所述目标第二队列中间件将所述待传输消息发送至目标业务服务器。
优选的,在所述第一队列中间件接收待传输消息之前,所述方法还包括:
建立所述第一队列中间件与终端之间的通信链路,以通过所述第一队列中间件与终端之间的通信链路接收所述待传输消息;
在完成所述待传输消息的接收后断开与终端之间的通信链路。
优选的,在所述第一队列中间件接收待传输消息之前,所述方法还包括:
建立所述第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收所述待传输消息。
本发明还提供一种消息传输方法,所述方法应用于消息转发设备,所述消息转发设备运行第一队列中间件,所述方法包括:
接收待传输消息;
确定用于转发所述待传输消息的目标第二队列中间件;
建立与所述目标第二队列中间件之间处于持续连接状态的通信链路;
通过所述通信链路向所述目标第二队列中间件发送所述待传输消息。
优选的,所述确定用于转发所述待传输消息的目标第二队列中间件包括:
从存储区中获取记录有所述待传输消息的配置文件;
从所述配置文件中提取与所述待传输消息对应的设备信息;
基于与所述待传输消息对应的设备信息,确定所述目标第二队列中间件。
优选的,所述方法还包括:在接收到所述目标第二队列中间件发送的反馈响应后,如果检测到消息处理情况满足预设条件的情况下,断开与所述目标第二队列中间件之间的通信链路,所述反馈响应用于表明所述目标第二队列中间件接收到所述待传输消息。
优选的,所述在接收到所述目标第二队列中间件发送的反馈响应后,如果检测到消息处理情况满足预设条件,断开与所述标第二队列中间件之间的通信链路包括:
如果检测到通过所述通信链路传输预设数量的待传输消息,断开与所述目标第二队列中间件之间的通信链路;
或者
如果检测到通过所述通信链路至少传输两种类型的待传输消息,断开与所述目标第二队列中间件之间的通信链路;
或者
如果检测到通过所述通信链路传输预设消息集合中的各个待传输消息,断开与所述目标第二队列中间件之间的通信链路。
优选的,所述方法还包括:监测从所述通信链路建立完成之后的预设时间内是否接收到所述目标第二队列中间件发送的链路断开指令;
如果监测到预设时间内接收到所述目标第二队列中间件发送的链路断开指令,断开与所述目标第二队列中间件之间的通信链路。
优选的,在所述接收待传输消息之前,所述方法还包括:
建立所述第一队列中间件与终端之间的通信链路,以通过所述第一队列中间件与终端之间的通信链路接收所述待传输消息;
在完成所述待传输消息的接收后断开与终端之间的通信链路。
优选的,在所述接收待传输消息之前,所述方法还包括:
建立所述第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收所述待传输消息。
本发明还提供一种消息传输方法,所述方法应用于消息转发设备,所述消息转发设备运行第二队列中间件,所述方法包括:
建立与第一队列中间件之间处于持续连接状态的通信链路;
接收所述通信链路中传输的待传输消息;
将所述待传输消息发送至目标业务服务器。
本发明还提供一种消息转发设备,所述消息转发设备运行第一队列中间件和第二队列中间件;
所述第一队列中间件,用于接收待传输消息,从所述第二队列中间件中确定用于转发所述待传输消息的目标第二队列中间件,建立所述第一队列中间件与所述目标第二队列中间件之间处于持续连接状态的通信链路,并通过所述通信链路向所述目标第二队列中间件发送所述待传输消息;
所述目标第二队列中间件将所述待传输消息发送至目标业务服务器。
本发明还提供一种消息转发设备,所述消息转发设备运行第一队列中间件,所述第一队列中间件包括:
接收单元,用于接收待传输消息;
确定单元,用于确定用于转发待传输消息的目标第二队列中间件;
建立单元,用于建立与所述目标第二队列中间件之间处于持续连接状态的通信链路;
发送单元,用于通过所述通信链路向所述目标第二队列中间件发送所述待传输消息。
本发明还提供一种消息转发设备,所述消息转发设备运行第二队列中间件,所述第二队列中间件包括:
建立单元,用于建立与第一队列中间件之间处于持续连接状态的通信链路;
接收单元,用于接收所述通信链路中传输的待传输消息;
发送单元,用于将所述待传输消息发送至目标业务服务器。
本发明还提供一种消息转发设备,所述消息转发设备包括处理器和存储器;
所述存储器存储有计算机程序代码;
所述处理器运行第一队列中间件和/或第二队列中间件,所述处理器通过所述第一队列中间件和/或所述第二队列中间件执行所述存储器存储的计算机程序代码,以实现上述消息传输方法。
本发明还提供一种存储介质,所述存储介质存储有程序代码,所述程序代码被处理器运行时实现上述消息传输方法。
从上述技术方案可知,在接收到待传输消息的情况下,能够通过一条处于持续连接状态的通信链路传输待传输消息,以使得通过处于持续连接状态的通信链路传输至少部分待传输消息,相对于现有技术来说降低通信链路的建立和断开的频率,由此可以降低资源开销。并且当有大量待传输消息需要传输时可复用同一条通信链路,以此降低需要建立的通信链路的数量,相对于现有技术中每个待传输消息对应一条通信链路的方式来说,通信链路建立能够使用的资源增加,进而提高通信链路建立效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种消息传输方法的信令图;
图2是本发明实施例提供的另一种消息传输方法的信令图;
图3是本发明实施例提供的再一种消息传输方法的信令图;
图4是本发明实施例提供的消息传输方法对应的消息传输系统的框架图;
图5是本发明实施例提供的再一种消息传输方法的信令图;
图6是本发明实施例提供的再一种消息传输方法的流程图;
图7是本发明实施例提供的再一种消息传输方法的流程图;
图8是本发明实施例提供的一种消息转发设备的结构示意图;
图9是本发明实施例提供的另一种消息转发设备的结构示意图;
图10是本发明实施例提供的再一种消息转发设备的结构示意图。
具体实施方式
现有技术中,终端中的一个进程对应一个需要通过消息转发设备传输的待传输消息,建立用于传输该待传输消息的通信链路,并通过与该待传输消息对应的进程将待传输消息发送到建立的通信链路上进行传输。当待传输消息传输到消息转发设备之后,终端释放与该待传输消息对应的进程,并且断开与消息转发设备建立的通信链路。
也就是说现有技术通过消息转发设备传输待传输消息时每个待传输消息对应有一个通信链路,该通信链路在消息传输时建立以及在消息完成传输时断开,这就使得终端需要频繁建立通信链路和断开通信链路,而每次建立通信链路和断开通信链路均需要占用资源,从而增加资源开销。并且有大量待传输消息传输时需要为每个待传输消息建立一个通信链路,使得每个通信链路建立能够使用的资源降低,增加通信链路建立的时间,从而降低通信链路建立效率。
针对这一问题,本发明实施例提供一种消息传输方法及装置,通过建立一条处于持续连接状态的通信链路使得多条待传输消息能够复用该通信链路,使得同一条通信链路可以传输多条待传输消息,以此来降低资源开销和提高通信链路建立效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种消息传输方法的信令图,该消息传输方法应用于消息转发设备,消息转发设备运行第一队列中间件以及第二队列中间件,通过第一队列中间件和第二队列中间件降低资源开销和提高通信链路建立效率,可以包括以下步骤:
S101:第一队列中间件接收待传输消息。可以理解的是:待传输消息可以是终端发起的用于请求某种服务或者用于指示某种动作等的消息,例如将本实施例应用在一个视频直播的应用场景中,该视频直播的应用场景需要进行视频清晰度切换,则需要一个待传输消息来指示进行视频清晰度切换这一动作。
在本实施例中,第一队列中间件可以通过第一队列中间件的业务接口接收任一待传输消息,并将待传输消息存储至第一队列中间件的消息缓存队列中,以通过消息缓存队列存储待传输消息能够使待传输消息有序到达、减少待传输消息的丢失。
消息缓存队列还可以设置消息格式,因此对于任一待传输消息来说:需要根据消息缓存队列对应的消息格式,将待传输消息转换为消息缓存队列对应的消息格式的第一消息,并将第一消息存储至消息缓存队列中。相对应的获取待传输消息的方式可以是:从消息缓存队列中获取第一消息,将第一消息转换为待传输消息,其中第一消息和待传输消息对应不同的消息格式,且待传输消息对应的消息格式为消息转发设备对应的消息格式,以使得传输至消息转发设备中的待传输消息可以被消息转发设备识别。
例如:消息缓存队列可以是redis队列,相对应的第一队列中间件为redis中间件,通过其业务接口将待传输消息存储在redis队列中,将待传输消息rpush或lpush至redis队列中,之后通过blpop从redis队列中读取待传输消息向目标第二队列中间件传输。其中rpush表明将待传输消息从redis队列的右边存入,lpush表明将待传输消息从redis队列的左边存入,blpop表明将redis队列中的第一个待传输消息移出redis队列。当然除每次从redis队列中获取第一个待传输消息之外,还可以采用其他方式从redis队列中来获取待传输消息,如根据消息优先级来获取待传输消息,具体本实施例不再阐述。
此外在得到待传输消息之后,还可以将待传输消息转换成符合第一队列中间件和目标第二队列中间件之间的通信协议要求的数据格式,例如转换成json(JavaScriptObject Notation)格式,以使得待传输数据的传输符合第一队列中间件和目标第二队列中间件之间的通信协议要求。
其中待传输消息的接收和格式转换可以通过第一队列中间件中的一预设进程来执行,第一队列中间件可以预先设置该预设进程的运行时间,如针对待传输消息的类型设置运行时间,该预设进程在至少运行所设置的运行时间后释放,且再次借助第一队列中间件传输待传输消息时重新启动该预设进程。当然预设进程还可以是一常驻进程,所谓常驻进程是指在第一队列中间件处于开机状态的情况下一直存在的进程,这样就无需多次启动预设进程。
在这里需要说明的一点是:第一队列中间件与终端之间建立的通信链路有两种方式:一种方式如图2所示另一种消息传输方法中的步骤S201和S203所示,在第一队列中间件接收待传输消息之前,建立第一队列中间件与终端之间的通信链路,以通过第一队列中间件与终端之间的通信链路接收待传输消息;在完成待传输消息的接收后断开与终端之间的通信链路。
另一种方式如图3所示再一种消息传输方法中的步骤S301所示,在第一队列中间件接收待传输消息之前,建立第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收待传输消息,相对于图2所示方式可以通过复用与终端之间的通信链路传输多条待传输消息,进一步降低终端与第一队列中间件之间的资源开销和提高通信链路建立效率。
对于图2和图3所示消息传输方法,其他步骤与本实施例中图1所示消息传输方法相同,对此本实施例不再阐述。
S102:第一队列中间件从第二队列中间件中确定用于转发待传输消息的目标第二队列中间件。其中第一队列中间件可以与多个第二队列中间件通信,而每个第二队列中间件与一个业务服务器通信,且业务服务器是对应待传输消息的目的地址,如图4所示架构图,因此第一队列中间件接收到待传输消息之后,需要确定该待传输消息传输至哪个业务服务器,即目标业务服务器,进而将与目标业务服务器通信的第二队列中间件作为目标第二队列中间件,以通过目标第二队列中间件向目标业务服务器转发待传输消息。
其中确定目标第二队列中间件的方式可以是:从存储区中获取记录有待传输消息的配置文件,从配置文件中提取与待传输消息对应的设备信息,基于与待传输消息对应的设备信息,确定目标第二队列中间件。如在配置文件中记录有待传输消息和用于表明业务服务器的设备信息的对应关系,业务服务器的设备信息和第二队列中间件的设备信息之间的对应关系,这样在获取到任一待传输消息的情况下,通过配置文件则可以获取该待传输消息的对应关系,进而从对应关系中提取出对应的业务服务器的设备信息以及第二队列中间件的设备信息,以设备信息确定出目标第二队列中间件。
如业务服务器的设备信息可以是业务服务器的标识信息,如业务服务器的MAC(Media Access Control,介质访问控制)地址,通过业务服务器的MAC地址对所有业务服务器进行区分,从而基于任一业务服务器的MAC地址可以唯一地确定出一个业务服务器,同样的第二队列中间件的设备信息也可以是用于区分第二队列中间件的标识信息,以从多个第二队列中间件中确定出唯一的第二队列中间件,即目标第二队列中间件。
在本实施例中,第二队列中间件可以是ActiveMq中间件、RabbitMQ中间件、Kafka中间件和RocketMQ中间件等中的至少一种,对此本实施例不进行限定。
S103:建立第一队列中间件和目标第二队列中间件之间处于持续连接状态的通信链路,从而可以复用第一队列中间件和目标第二队列中间件之间的通信链路传输待传输消息,对于第一队列中间件和目标第二队列中间件之间的通信链路的建立过程,本实施例不进行详述,例如通信链路的建立与目标第二队列中间件的类型相关,如目标第二队列中间件为用于传输ActiveMq消息的ActiveMq中间件,则通信链路的建立是基于stomp(Simple(or Streaming)Text Orientated Messaging Protocol,简单(流)文本定向消息协议)。
在本实施例中,复用第一队列中间件和目标第二队列中间件之间的通信链路传输待传输消息是指:直接使用已经与目标第二队列中间件建立的通信链路传输待传输消息,即在建立与目标第二队列中间件建立的通信链路,可以通过与目标第二队列中间件建立的同一条通信链路传输多条待传输消息。
在本实施例中,可以由预设进程复用与目标第二队列中间件建立的通信链路,预设进程复用的通信链路随预设进程的释放而断开,因此若预设进程至少运行预先设置的运行时间,相应的预设进程所复用的连接可以至少维持所预先设置的运行时间,在连接维持的时间内预设进程可一直复用该通信链路向同一个目标第二队列中间件转发待传输消息。若预设进程是一常驻进程,则该常驻进程复用的通信链路在第一队列中间件处于开机状态的情况下一直存在,这样就无需多次建立和断开通信链路,降低资源开销。
S104:第一队列中间件通过通信链路向目标第二队列中间件发送待传输消息。例如利用第一队列中间件对应的预设进程,将待传输消息发送到与目标第二队列中间件之间的通信链路上,并通过与目标第二队列中间件之间的通信链路将待传输消息传输至目标第二队列中间件。
S105:目标第二队列中间件将待传输消息发送至目标业务服务器。
从上述技术方案可知,在接收到待传输消息的情况下,能够通过一条处于持续连接状态的通信链路传输待传输消息,以使得通过处于持续连接状态的通信链路传输至少部分待传输消息,相对于现有技术来说降低通信链路的建立和断开的频率,由此可以降低资源开销。并且当有大量待传输消息需要传输时可复用同一条通信链路,以此降低需要建立的通信链路的数量,相对于现有技术中每个待传输消息对应一条通信链路的方式来说,通信链路建立能够使用的资源增加,进而提高通信链路建立效率。
请参阅图5,其示出了本发明实施例提供的再一种消息传输方法,在上述图1基础上,还可以包括以下步骤:
S106:第一队列中间件在接收到目标第二队列中间件发送的反馈响应后,如果监测到消息处理情况满足预设条件的情况下,断开与目标第二队列中间件之间的通信链路。其中反馈响应用于表明目标第二队列中间件接收到待传输消息。
也就是说在接收到目标第二队列中间件发送的反馈响应后,不会立即断开与目标第二队列中间件之间的通信链路,而是进一步监测第一队列中间件的消息处理情况是否满足预设条件,如果不满足,维持与目标第二队列中间件的通信链路的连接,如果满足则可以断开与目标第二队列中间件之间的通信链路。若第一队列中间件后续再次接收到需要传输至该目标第二队列中间件的待传输消息,则会重新与该目标第二队列中间件建立一个持续处于连接状态的通信链路。
在本实施例中,在满足如下至少一个预设条件时断开与目标第二队列中间件之间的通信链路:
一种方式:如果检测到通过通信链路传输预设数量的待传输消息,断开与目标第二队列中间件之间的通信链路,也就是说通过与目标第二队列中间件之间的通信链路已经传输预设数量的待传输消息时则断开该通信链路,其中预设数量根据实际应用而定,对此本实施例不加以限定。
另一种方式:如果检测到通过通信链路至少传输两种类型的待传输消息,断开与目标第二队列中间件之间的通信链路,也就是说通过与目标第二队列中间件之间的通信链路已经传输至少两种类型的待传输消息时则断开该通信链路,例如在传输视频类、图片类、音频类、文本类等中的至少两种类型的待传输消息是断开与目标第二队列中间件之间的通信链路,其中至少两种类型可以根据实际应用而定,对此本实施例不加以限定。
当然待传输消息的类型和预设数量可以结合使用,如在检测到已利用与目标第二队列中间件之间的通信链路传输预设数量的待传输消息,且预设数量的待传输消息中包括至少两种类型的待传输消息,则断开与目标第二队列中间件之间的通信链路,即与目标第二队列中间件之间的通信链路传输的待传输消息需要满足两种要求:数量要求和类型要求,在均满足这两种要求的情况下断开与目标第二队列中间件之间的通信链路,并且这两种要求的组合除上述说明之外,还可以采用其他组合方式,如至少两种类型中每种类型均通过一条通信链路传输预设数量。
再一种方式:如果检测到通过通信链路传输预设消息集合中的各个待传输消息,断开与目标第二队列中间件之间的通信链路。其中预设消息集合可以是一缓存有需要借助同一条通信链路传输的消息优先级在预设优先级范围内的待传输消息,对于预设消息集合本实施例不进行限定。
从上述技术方案可知,在接收到目标第二队列中间件发送的反馈响应之后,如果检测到第一队列中间件的消息处理情况满足预设条件,断开与目标第二队列中间件之间的通信链路,从而实现根据第一队列中间件的消息处理情况来确定是否断开其与目标第二队列中间件之间的通信链路的目的。
除上述断开与目标第二队列中间件之间的通信链路的方式之外,还可以采用其他方式,例如第一队列中间件监测从与目标第二队列中间件之间的通信链路建立完成之后的预设时间内是否接收到目标第二队列中间件发送的链路断开指令;如果监测到预设时间内接收到目标第二队列中间件发送的链路断开指令,断开与目标第二队列中间件之间的通信链路,即维持与目标第二队列中间件之间的通信链路在预设时间内处于持续连接状态,例如如果第一队列中间件通过与目标第二队列中间件之间的通信链路建立N小时,则监测N小时后是否接收到链路断开指令,如果接收到则断开与目标第二队列中间件之间的通信链路。
本实施例提供的消息转发设备除可以同时运行第一队列中间件和第二队列中间件之外,还可以运行第一队列中间件或第二队列中间件,如果消息转发设备运行第一队列中间件,则本实施例提供的消息传输方法的流程图如图6所示,可以包括以下步骤:
S601:接收待传输消息。在本实施例中,消息转发设备的第一队列中间件通过与终端之间的通信链路接收待传输消息,其与终端之间的通信链路的方式有:在接收待传输消息之前,建立第一队列中间件与终端之间的通信链路,以通过第一队列中间件与终端之间的通信链路接收待传输消息;在完成待传输消息的接收后断开与终端之间的通信链路。或者在接收待传输消息之前,建立第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收待传输消息。
S602:确定用于转发待传输消息的目标第二队列中间件。其中确定用于转发待传输消息的目标第二队列中间件的过程包括:从存储区中获取记录有待传输消息的配置文件;从配置文件中提取与所述待传输消息对应的设备信息;基于与待传输消息对应的设备信息,确定目标第二队列中间件。
S603:建立与目标第二队列中间件之间处于持续连接状态的通信链路。
S604:通过通信链路向目标第二队列中间件发送待传输消息。
可选的,本实施例提供的消息传输方法还可以包括:在接收到目标第二队列中间件发送的反馈响应后,如果监测到消息处理情况满足预设条件的情况下,断开与目标第二队列中间件之间的通信链路。其中反馈响应用于表明目标第二队列中间件接收到待传输消息。
在本实施例中,在满足如下至少一个预设条件时断开与目标第二队列中间件之间的通信链路:
如果检测到通过通信链路传输预设数量的待传输消息,断开与目标第二队列中间件之间的通信链路;或者,如果检测到通过通信链路至少传输两种类型的待传输消息,断开与目标第二队列中间件之间的通信链路;或者,如果检测到通过通信链路传输预设消息集合中的各个待传输消息,断开与目标第二队列中间件之间的通信链路。
可选的,本实施例提供的消息传输方法还可以包括:监测从通信链路建立完成之后的预设时间内是否接收到目标第二队列中间件发送的链路断开指令;如果监测到预设时间内接收到目标第二队列中间件发送的链路断开指令,断开与目标第二队列中间件之间的通信链路。
如果消息转发设备运行第二队列中间件,其对应的消息传输方法的流程图如图7所示,可以包括以下步骤:
S701:建立与第一队列中间件之间处于持续连接状态的通信链路。
S702:接收通信链路中传输的待传输消息。
S703:将待传输消息发送至目标业务服务器。
上述图6和图7所示消息传输方法的执行过程请参阅上述方法实施例中的相关说明,对此本实施例不再阐述。
借助于上述消息传输方法,对消息转发设备运行redis中间件(第一队列中间件)和MQ中间件(第二队列中间件)传输待传输消息进行多次实验,得到在通过redis中间件和MQ中间件传输大量待传输消息的情况下,redis中间件与MQ中间件之间建立通信链路的耗时降低近20ms(毫秒),通信链路的连接等待时间接近为0,由此说明通信链路的建立效率得到大幅提高,有利于待传输消息的传输。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
与上述方法实施例相对应,本发明实施例还提供一种消息转发设备,其结构如图8所示,其中消息转发设备运行第一队列中间件10和第二队列中间件20。
第一队列中间件10,用于接收待传输消息,从第二队列中间件20中确定用于转发待传输消息的目标第二队列中间件,建立第一队列中间件与目标第二队列中间件之间处于持续连接状态的通信链路,并通过通信链路向目标第二队列中间件发送待传输消息。目标第二队列中间件将待传输消息发送至目标业务服务器。
第一队列中间件10还用于在接收待传输消息之前,建立第一队列中间件与终端之间的通信链路,以通过第一队列中间件与终端之间的通信链路接收待传输消息;在完成待传输消息的接收后断开与终端之间的通信链路。或者第一队列中间件10还用于在接收待传输消息之前,建立第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收待传输消息。
相对应的,第一队列中间件10还可以断开与目标第二队列中间件之间的通信链路,其断开方式请参阅上述方法实施例中的相关说明,对此本实施例不再阐述。
请参阅图9,其示出了本发明实施例提供的另一种消息转发设备,消息转发设备运行第一队列中间件,第一队列中间件包括:接收单元100、确定单元200、建立单元300和发送单元400。
接收单元100,用于接收待传输消息。
确定单元200,用于确定用于转发待传输消息的目标第二队列中间件。例如从存储区中获取记录有待传输消息的配置文件,从配置文件中提取与待传输消息对应的设备信息,基于与待传输消息对应的设备信息,确定目标第二队列中间件,具体请参阅方法实施例中的相关说明。
建立单元300,用于建立与目标第二队列中间件之间处于持续连接状态的通信链路。此外建立单元300还用于在接收单元100接收待传输消息之前建立第一队列中间件与终端之间的通信链路,以通过第一队列中间件与终端之间的通信链路接收待传输消息,相对应第一队列中间件还包括断开单元,用于在完成待传输消息的接收后断开与终端之间的通信链路。或者建立单元300还用于在接收单元100接收待传输消息之前,建立第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收待传输消息。
发送单元400,用于通过通信链路向目标第二队列中间件发送待传输消息。
本实施例提供的第一队列中间件中的断开单元还用于断开与目标第二队列中间件之间的通信链路,具体请参阅方法实施例中的相关说明,对此本实施例不再阐述。
请参阅图10,其示出了本发明实施例提供的再一种消息转发设备,消息转发设备运行第二队列中间件,第二队列中间件包括:建立单元1000、接收单元2000和发送单元3000。
建立单元1000,用于建立与第一队列中间件之间处于持续连接状态的通信链路。
接收单元2000,用于接收通信链路中传输的待传输消息。
发送单元3000,用于将待传输消息发送至目标业务服务器。
上述建立单元1000、接收单元2000和发送单元3000的说明请参阅上述方法实施例中的相关说明,对此本实施例不再阐述。
此外本发明实施例还提供再一种消息转发设备,消息转发设备包括处理器和存储器。其中存储器存储有计算机程序代码;处理器运行第一队列中间件和/或第二队列中间件,处理器通过第一队列中间件和/或第二队列中间件执行存储器存储的计算机程序代码,以实现上述消息传输方法。
本发明实施例还提供一种存储介质,存储介质存储有程序代码,程序代码被处理器运行时实现上述消息传输方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种消息传输方法,其特征在于,所述方法应用于消息转发设备,所述消息转发设备运行第一队列中间件以及第二队列中间件,所述方法包括:
建立所述第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收待传输消息;
所述第一队列中间件通过所述第一队列中间件中的一预设进程接收所述待传输消息,其中,所述第一队列中间件针对所述待传输消息的类型设置进程的运行时间,所述预设进程在至少运行所设置的运行时间后释放,且再次借助所述第一队列中间件传输待传输消息时重新启动所述预设进程;
所述第一队列中间件从第二队列中间件中确定用于转发所述待传输消息的目标第二队列中间件;
建立所述第一队列中间件与所述目标第二队列中间件之间处于持续连接状态的通信链路,由所述预设进程复用与所述目标第二队列中间件建立的通信链路,所述预设进程复用的通信链路随预设进程的释放而断开,所述预设进程所复用的通信链路至少维持预先设置的运行时间,在连接维持的运行时间内所述预设进程能够一直复用所述通信链路向同一个目标第二队列中间件转发待传输消息;
所述第一队列中间件通过所述通信链路向所述目标第二队列中间件发送所述待传输消息;
所述目标第二队列中间件将所述待传输消息发送至目标业务服务器。
2.根据权利要求1所述的方法,其特征在于,在所述第一队列中间件通过所述第一队列中间件中的一预设进程接收待传输消息之前,所述方法还包括:
建立所述第一队列中间件与终端之间的通信链路,以通过所述第一队列中间件与终端之间的通信链路接收所述待传输消息;
在完成所述待传输消息的接收后断开与终端之间的通信链路。
3.一种消息传输方法,其特征在于,所述方法应用于消息转发设备,所述消息转发设备运行第一队列中间件,所述方法包括:
建立所述第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收待传输消息;
通过所述第一队列中间件中的一预设进程接收所述待传输消息,其中,所述第一队列中间件针对所述待传输消息的类型设置进程的运行时间,所述预设进程在至少运行所设置的运行时间后释放,且再次借助所述第一队列中间件传输待传输消息时重新启动所述预设进程;
确定用于转发所述待传输消息的目标第二队列中间件;
建立与所述目标第二队列中间件之间处于持续连接状态的通信链路,由所述预设进程复用与所述目标第二队列中间件建立的通信链路,所述预设进程复用的通信链路随预设进程的释放而断开,所述预设进程所复用的通信链路至少维持预先设置的运行时间,在连接维持的运行时间内所述预设进程能够一直复用所述通信链路向同一个目标第二队列中间件转发待传输消息;
通过所述通信链路向所述目标第二队列中间件发送所述待传输消息。
4.根据权利要求3所述的方法,其特征在于,所述确定用于转发所述待传输消息的目标第二队列中间件包括:
从存储区中获取记录有所述待传输消息的配置文件;
从所述配置文件中提取与所述待传输消息对应的设备信息;
基于与所述待传输消息对应的设备信息,确定所述目标第二队列中间件。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:在接收到所述目标第二队列中间件发送的反馈响应后,如果检测到消息处理情况满足预设条件的情况下,断开与所述目标第二队列中间件之间的通信链路,所述反馈响应用于表明所述目标第二队列中间件接收到所述待传输消息。
6.根据权利要求5所述的方法,其特征在于,所述在接收到所述目标第二队列中间件发送的反馈响应后,如果检测到消息处理情况满足预设条件,断开与所述目标第二队列中间件之间的通信链路包括:
如果检测到通过所述通信链路传输预设数量的待传输消息,断开与所述目标第二队列中间件之间的通信链路;
或者
如果检测到通过所述通信链路至少传输两种类型的待传输消息,断开与所述目标第二队列中间件之间的通信链路;
或者
如果检测到通过所述通信链路传输预设消息集合中的各个待传输消息,断开与所述目标第二队列中间件之间的通信链路。
7.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:监测从所述通信链路建立完成之后的预设时间内是否接收到所述目标第二队列中间件发送的链路断开指令;
如果监测到预设时间内接收到所述目标第二队列中间件发送的链路断开指令,断开与所述目标第二队列中间件之间的通信链路。
8.根据权利要求3所述的方法,其特征在于,在所述接收待传输消息之前,所述方法还包括:
建立所述第一队列中间件与终端之间的通信链路,以通过所述第一队列中间件与终端之间的通信链路接收所述待传输消息;
在完成所述待传输消息的接收后断开与终端之间的通信链路。
9.一种消息传输方法,其特征在于,所述方法应用于消息转发设备,所述消息转发设备运行第二队列中间件,所述方法包括:
建立与第一队列中间件之间处于持续连接状态的通信链路,所述处于持续连接状态的通信链路是由所述第一队列中间件中的一预设进程复用与目标第二队列中间件建立的通信链路,所述目标第二队列是所述第一队列中间件从所述第二队列中间件中确定的用于转发待传输消息的,所述预设进程复用的通信链路随预设进程的释放而断开,所述预设进程所复用的通信链路至少维持预先设置的运行时间,在连接维持的运行时间内所述预设进程能够一直复用所述通信链路向同一个目标第二队列中间件转发待传输消息;
接收所述通信链路中传输的待传输消息;
将所述待传输消息发送至目标业务服务器。
10.一种消息转发设备,其特征在于,所述消息转发设备运行第一队列中间件和第二队列中间件;
所述第一队列中间件,用于建立与终端之间处于持续连接状态的通信链路,由所述第一队列中间件中的一预设进程复用与目标第二队列中间件建立的通信链路,所述目标第二队列是所述第一队列中间件从所述第二队列中间件中确定的用于转发待传输消息的,所述预设进程复用的通信链路随预设进程的释放而断开,所述预设进程所复用的通信链路至少维持预先设置的运行时间,在连接维持的运行时间内所述预设进程能够一直复用所述通信链路向同一个目标第二队列中间件转发待传输消息,以通过与终端之间处于持续连接状态的通信链路接收待传输消息,通过所述第一队列中间件中的一预设进程接收所述待传输消息,其中,所述第一队列中间件针对所述待传输消息的类型设置进程的运行时间,所述预设进程在至少运行所设置的运行时间后释放,且再次借助所述第一队列中间件传输待传输消息时重新启动所述预设进程,从所述第二队列中间件中确定用于转发所述待传输消息的目标第二队列中间件,建立所述第一队列中间件与所述目标第二队列中间件之间处于持续连接状态的通信链路,并通过所述通信链路向所述目标第二队列中间件发送所述待传输消息;
所述目标第二队列中间件将所述待传输消息发送至目标业务服务器。
11.一种消息转发设备,其特征在于,所述消息转发设备运行第一队列中间件,所述第一队列中间件包括:
建立单元,用于建立所述第一队列中间件与终端之间处于持续连接状态的通信链路,以通过与终端之间处于持续连接状态的通信链路接收待传输消息;
接收单元,用于通过所述第一队列中间件中的一预设进程接收所述待传输消息,其中,所述第一队列中间件针对所述待传输消息的类型设置进程的运行时间,所述预设进程在至少运行所设置的运行时间后释放,且再次借助所述第一队列中间件传输待传输消息时重新启动所述预设进程;
确定单元,用于确定用于转发待传输消息的目标第二队列中间件;
建立单元,用于建立与所述目标第二队列中间件之间处于持续连接状态的通信链路,由所述预设进程复用与所述目标第二队列中间件建立的通信链路,所述预设进程复用的通信链路随预设进程的释放而断开,所述预设进程所复用的通信链路至少维持预先设置的运行时间,在连接维持的运行时间内所述预设进程能够一直复用所述通信链路向同一个目标第二队列中间件转发待传输消息;
发送单元,用于通过所述通信链路向所述目标第二队列中间件发送所述待传输消息。
12.一种消息转发设备,其特征在于,所述消息转发设备运行第二队列中间件,所述第二队列中间件包括:
建立单元,用于建立与第一队列中间件之间处于持续连接状态的通信链路,所述处于持续连接状态的通信链路是由所述第一队列中间件中的一预设进程复用与目标第二队列中间件建立的通信链路,所述目标第二队列是所述第一队列中间件从所述第二队列中间件中确定的用于转发待传输消息的,所述预设进程复用的通信链路随预设进程的释放而断开,所述预设进程所复用的通信链路至少维持预先设置的运行时间,在连接维持的运行时间内所述预设进程能够一直复用所述通信链路向同一个目标第二队列中间件转发待传输消息;
接收单元,用于接收所述通信链路中传输的待传输消息;
发送单元,用于将所述待传输消息发送至目标业务服务器。
13.一种消息转发设备,其特征在于,所述消息转发设备包括处理器和存储器;
所述存储器存储有计算机程序代码;
所述处理器运行第一队列中间件和/或第二队列中间件,所述处理器通过所述第一队列中间件和/或所述第二队列中间件执行所述存储器存储的计算机程序代码,以实现如权利要求1至9任意一项所述的消息传输方法。
14.一种存储介质,其特征在于,所述存储介质存储有程序代码,所述程序代码被处理器运行时实现如权利要求1至9任意一项所述的消息传输方法。
CN201910789394.6A 2019-08-26 2019-08-26 一种消息传输方法、消息转发设备及存储介质 Active CN110365802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910789394.6A CN110365802B (zh) 2019-08-26 2019-08-26 一种消息传输方法、消息转发设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910789394.6A CN110365802B (zh) 2019-08-26 2019-08-26 一种消息传输方法、消息转发设备及存储介质

Publications (2)

Publication Number Publication Date
CN110365802A CN110365802A (zh) 2019-10-22
CN110365802B true CN110365802B (zh) 2022-11-15

Family

ID=68225164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910789394.6A Active CN110365802B (zh) 2019-08-26 2019-08-26 一种消息传输方法、消息转发设备及存储介质

Country Status (1)

Country Link
CN (1) CN110365802B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032492B (zh) * 2021-04-21 2024-07-09 新奥数能科技有限公司 一种边缘端数据传输与存储的方法以及装置
CN115037786B (zh) * 2022-08-09 2022-11-01 北京航天驭星科技有限公司 提高数据传输效率的方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035880A (zh) * 2010-11-02 2011-04-27 中兴通讯股份有限公司 一种保持连接的方法及装置
CN108924773A (zh) * 2018-06-04 2018-11-30 北京百悟科技有限公司 消息处理方法及装置
CN109995801A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 一种消息传输方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965765B2 (en) * 2001-05-17 2005-11-15 Palmsource, Inc. Transactional message-queue communication for wirelessly networked devices system and method
US20030233466A1 (en) * 2002-01-10 2003-12-18 Ian Kinkade System and method for efficient message transport by message queuing middleware
US8176186B2 (en) * 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
CN103166921B (zh) * 2011-12-13 2016-01-20 中国移动通信集团公司 一种向终端提供服务的方法、网络侧装置及终端
CN102447734B (zh) * 2012-02-14 2014-01-15 浪潮齐鲁软件产业有限公司 一种税务云计算网开im在线客服系统云端服务方法
CN103916442A (zh) * 2013-01-07 2014-07-09 阿里巴巴集团控股有限公司 消息推送实现方法、移动终端及消息推送系统
CN107979592B (zh) * 2013-09-30 2020-06-30 腾讯科技(深圳)有限公司 一种发送业务请求消息的方法及装置
CN104935622B (zh) * 2014-03-21 2019-03-15 阿里巴巴集团控股有限公司 一种用于消息分配、消费的方法及装置,用于消息处理的系统
CN104618466A (zh) * 2015-01-20 2015-05-13 上海交通大学 基于消息传递的负载均衡和过负荷控制系统及其控制方法
CN105208043B (zh) * 2015-10-13 2019-02-12 网易(杭州)网络有限公司 外网代理模块、内网代理模块、数据传输方法及系统
CN106648922A (zh) * 2016-10-11 2017-05-10 江苏电力信息技术有限公司 一种基于xmpp的数据采集方法
US20180165589A1 (en) * 2016-12-13 2018-06-14 Microsoft Technology Licensing, Llc Wearable device control with inferred insights

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035880A (zh) * 2010-11-02 2011-04-27 中兴通讯股份有限公司 一种保持连接的方法及装置
CN109995801A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 一种消息传输方法和装置
CN108924773A (zh) * 2018-06-04 2018-11-30 北京百悟科技有限公司 消息处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于中间件技术的Twitter系统研究与实现;梁碧泉等;《微计算机信息》;20100525(第15期);全文 *
基于混合式P2P模型的消息中间件设计;刘君;《辽宁科技大学学报》;20100215(第01期);全文 *

Also Published As

Publication number Publication date
CN110365802A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN110611691B (zh) 一种消息推送方法、系统及存储介质
CN102025616B (zh) 一种实现双向转发检测的方法、装置及交换机
CN104811459A (zh) 用于消息服务的处理方法、装置及系统、消息服务系统
CN110365802B (zh) 一种消息传输方法、消息转发设备及存储介质
CN103312593B (zh) 一种消息分发系统及方法
CN101953139A (zh) 响应于网络层连通性的dhcp初始化
CN105554099A (zh) 一种采集服务器负载均衡的方法及装置
CN109302435B (zh) 消息发布方法、装置、系统、服务器及计算机可读存储介质
CN108551571B (zh) 一种监控视频分发方法、装置、系统以及分发服务器
JP2010154159A (ja) 呼制御システム、呼制御装置、端末装置、および、呼制御方法
CN102857574B (zh) 物联网信息处理方法和装置
CN105281940A (zh) 一种基于netconf协议的hello报文交互的方法、设备和系统
CN107071038B (zh) 一种传输多媒体数据的方法及装置
CN114884805B (zh) 数据传输方法、装置、终端及存储介质
CN104581796B (zh) 一种m2m应用请求的发送方法、cse和系统
CN104320860A (zh) 一种网络连接的方法、装置及终端
CN102932497B (zh) 获取互联网协议地址的方法、设备及系统
CN112311759B (zh) 一种混合网络下的设备连接切换方法和系统
CN106161376B (zh) 一种端到端加密通信的协商方法及装置
KR20110013718A (ko) 멀티미디어 메시징 서비스 제공 시스템 및 그 방법
CN107548025B (zh) 一种位置信息共享方法和核心网
CN112118543B (zh) 一种用于确定终端的紧急任务处理设备的方法及装置
CN110890989A (zh) 一种通道连接方法及装置
CN114095759B (zh) 一种流媒体重定向方法及相关装置
CN109525870A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231121

Address after: 200335 room 205, floor 2, building 9, No. 365, Linhong Road, Changning District, Shanghai

Patentee after: Shanghai iqiyi New Media Technology Co.,Ltd.

Address before: 10 / F and 11 / F, iqiyi innovation building, No.2 Beiyi street, Haidian District, Beijing 100080

Patentee before: BEIJING QIYI CENTURY SCIENCE & TECHNOLOGY Co.,Ltd.