CN112689020B - 一种消息传输方法、消息中间件、电子设备及存储介质 - Google Patents
一种消息传输方法、消息中间件、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112689020B CN112689020B CN202011611596.0A CN202011611596A CN112689020B CN 112689020 B CN112689020 B CN 112689020B CN 202011611596 A CN202011611596 A CN 202011611596A CN 112689020 B CN112689020 B CN 112689020B
- Authority
- CN
- China
- Prior art keywords
- message
- transmitted
- receiving interface
- interface
- subscription
- 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
Landscapes
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种消息传输方法、消息中间件、电子设备及存储介质。该方法包括:通过接收至少一个消息消费端发布的第一消息接收接口的接口标准,对第一消息接收接口进行注册;发布第二消息接收接口,基于第二消息接收接口接收消息生产端传输的待传输消息;对待传输消息进行管理,并将待传输消息通过第一消息接收接口传输至对应的消息消费端,实现了通过注册接口进行消息消费,从而实现对消息中间件推送消息的完全松耦合,解决了消费端对消息中间件版本的强依赖性,减少了开发成本,同时,提高了消息中间件的通用性,适用于不同开发环境的消费端。
Description
技术领域
本发明实施例涉及消息传输技术领域,尤其涉及一种消息传输方法、消息中间件、存储介质及电子设备。
背景技术
目前各类消息中间件均采用长链接方式或轮询方式进行消息推送,***间耦合度较高,消费端通常需要嵌入消息中间件的开发包,通过依赖方式调用消息中间件的客户端建立链接或轮询。同时,对消息中间件的版本升级有强依赖,消息中间件的版本一旦升级往往意味着消费端需要更新开发包甚至修改代码逻辑。通用性稍差,对消费端开发环境有要求,如消费端与消息中间件不是同一个开发环境,消息中间件提供的客户端开发包可能无法使用。
发明内容
本发明提供一种消息传输方法、消息中间件、存储介质及电子设备,以实现消息生产端、消息中间件以及消息消费端之间的完全松耦合,解决了消费端对消息中间件版本的强依赖性,从而减少开发成本,同时还提高了消息中间件的通用性。
第一方面,本发明实施例提供了一种消息传输方法,应用于消息中间件,包括:
接收至少一个消息消费端发布的第一消息接收接口的接口标准,基于所述第一消息接收接口的接口标准进行第一消息接收接口的注册;
发布第二消息接收接口,基于所述第二消息接收接口接收消息生产端传输的待传输消息;
对待传输消息进行管理,并将所述待传输消息通过所述第一消息接收接口传输至对应的消息消费端。
第二方面,本发明实施例还提供了一种消息中间件,包括:
至少一个第二消息接收接口,用于接收消息生产端传输的待传输消息;
接口注册模块,用于对至少一个消息消费端发布的第一消息接收接口进行注册;
消息管理模块,与所述第二消息接收接口连接,对接收的所述待传输消息进行管理;
消息分发模块,与注册的所述第一消息接收接口连接,用于对待传输消息通过所述第一消息接收接口传输至对应的消息生产端。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例提供的消息传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明实施例提供的消息传输方法。
上述发明中的实施例具有如下优点或有益效果:
通过接收至少一个消息消费端发布的第一消息接收接口的接口标准,对第一消息接收接口进行注册;发布第二消息接收接口,基于第二消息接收接口接收消息生产端传输的待传输消息;对待传输消息进行管理,并将待传输消息通过第一消息接收接口传输至对应的消息消费端,实现了通过注册接口实时推送消息,从而实现消息生产端、消息中间件以及消息消费端之间的完全松耦合,解决了消费端对消息中间件版本的强依赖性,减少了开发成本,同时,提高了消息中间件的通用性,适用于不同开发环境的消费端。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1为本发明实施例一所提供的一种消息传输方法的流程示意图;
图2为本发明实施例一所提供的一种消息接收接口推送时序图;
图3为本发明实施例一所提供的一种消息中间件部署图;
图4为本发明实施例二所提供的一种消息传输方法的流程示意图;
图5为本发明实施例三所提供的一种消息中间件的结构示意图;
图6为本发明实施例三所提供的一种消息中间件的整体结构图;
图7为本发明实施例四所提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的消息传输方法的流程示意图,本实施例可适用于需要将消息生产端传输的待传输消息,通过接口传输至对应的消息消费端的情形,该方法应用于消息中间件,消息中间件可以由硬件和/或软件来实现,该方法具体包括如下步骤:
S110、接收至少一个消息消费端发布的第一消息接收接口的接口标准,对第一消息接收接口进行注册。
其中,消息消费端指通过消息中间件获取消息的消息接收方,可以理解为接收并处理消息的客户端。具体的,消息指在不同的客户端之间传递的数据内容。第一消息接收接口的接口标准指由消息消费端提供的,用于与消息中间件建立连接从而实现消息传输的通道。消息中间件通过消息消费端发布的接口标准注册第一消息接收接口,从而达到与消息消费端的第一消息接收接口进行消息传输的目的,即在消息中间件和消息消费端之间实现接口到接口的通信。具体的,消息消费端还发布接口注册方案,该接口注册方案中包括注册接口或者操作页面。消息中间件基于该注册方式中的注册接口或者操作页面进行第一消息接收接口的注册。
在一些实施例中,在消息中间件与消息消费端共同遵守第一消息接收接口规定的协议时,消息消费端可以通过第一消息接收接口获取消息中间件的对应消息。消息消费端发布的第一消息接收接口定义的协议由消息消费端定义,如webservice或restful。消息消费端发布的第一消息接收接口定义的结构可以是包括消息头结构和消息体结构。
需要说明的是,各个消息消费端在与消息中间件进行消息传输之前,均需要向消息中间件发布对应的第一消息接收接口,以使消息中间件对第一消息接收接口进行注册,实现消息中间件与各个消息消费端通过第一消息接收接口进行消息传输。此时,消息中间件与各个消息消费端之间的消息传输,与各个消息消费端的***环境无关,消息中间件的版本升级对各个消息消费端的影响较小,即只要第一消息接收接口的协议没有发生改变,各个消息消费端无需作出修改,从而减少了开发成本。
此外,现有技术中消息中间件与消息消费端之间会增加安全认证开销,如在一些安全性较高的环境下(如零信任体系),消息中间件如果与消费端没有部署在同一个环境中(如前后置分离),则可能会增加安全认证开销(大多数安全机制是支持HTTP接口认证的,未必支持其他协议链接),由于这类认证机制的处理往往在底层代码实现,从而会进一步增加改造开销。而本实施例通过在消息中间件中注册第一消息接收接口,并通过第一消息接收接口进行消息中间件与消息消费端的消息传输,消息传输的安全认证可以通过第一消息接收接口来实现,进一步的减少了开发成本。
可选的,消息消费端具有固定IP地址或域名。
其中,固定IP地址指消息消费端所在网络和所在主机的固定逻辑地址。域名指由一串用点分隔的名字组成的Internet上消息消费端所在主机或所在主机组的名称,用于在与消息中间件进行数据传输时对消息消费端所在主机进行定位。具体的,通过设定消息消费端具有固定IP地址或域名,以将与消息中间件通信的消息消费端限制为企业应用环境,避免互联网环境下的消息消费端与消息中间件通信,从而实现适用于企业应用之间的消息服务管理,即轻量级的消息***,同时适用于具有灵活定制需求的使用环境,如对权限要求较细或业务功能分类较细的业务环境,便于根据不同的业务数据标准进行扩展定制,适用于不同开发商***之间的消息互通。此外,还适用于微服务体系。
S120、发布第二消息接收接口,基于第二消息接收接口接收消息生产端传输的待传输消息。
其中,消息生产端指通过消息中间件传输消息的消息发送方,可以理解为发送消息的客户端。待传输消息指由消息生产端发送的,经过消息中间件进行传输,最终由消息消费端接收的消息。第二消息接收接口指由消息中间件提供的,用于与消息生产端建立连接从而实现消息传输的通道。消息中间件发布第二消息接收接口,例如可以是发布第二消息接收接口的接口标准以及注册方案,该注册方案,可以是包括消息生产端进行接口注册的注册接口或操作页面,使得各消息生产端在注册第二消息接收接口后,将消息通过第二消息接收接口传输至消息中间件的第二消息接收接口,从而实现消息中间件与消息生产端之间接口到接口的通信。其中,第二消息接收接口的接口协议由消息中间件来规定。
在本实施例中,消息中间件可以理解为消息生产端与消息消费端之间的消息传达方,在消息生产端、消息中间件以及消息消费端三者的交互过程中,接口的协议通常由每次交互过程的接收方来进行定义。具体的,针对消息生产端将消息发送至消息中间件这一交互过程,可以将消息生产端看作消息的发送方,将消息中间件看作消息的接收方,第二消息接收接口的协议由消息的接收方(消息中间件)来定义;针对消息中间件将消息发送至消息消费端这一交互过程,可以将消息中间件看作消息的发送方,将消息消费端看作消息的接收方,第一消息接收接口的协议由消息的接收方(消息消费端)来定义。也就是说,消息生产端、消息中间件以及消息消费端之间可以采用HTTP接口方式对接。由于各平台通常支持标准HTTP接口认证,因此,消息中间件与各类权限认证平台对接简单,消息生产端、消息中间件以及消息消费端均不需要嵌入任何消息中间件提供的代码或开发包,从而实现了***之间的完全松耦合。此外,由于消息中间件、消息生产端和消息消费端均是基于接口来推送或接收消息,因此,本实施例提出的方法,应用于消息中间件上,可以使得消息中间件容易与任何开放接口的***对接,来实现消息推送,且不会涉及到消息中间件内部的消息管理机制,因此对接的成本较小,便于扩展开发。
由于本实施例是以消息消费端的接口进行注册,即根据消息消费端注册的接收地址进行管理,各消息消费端之间不会共用同一个接口,因此便于对消息消费端进行各个维度的细分管理(如分组管理、定制化定时消费需求等),这种管理职能可以交由消息生产者,以使消息生产者转换成策略管理,实现灵活的消息发布。
在一些实施例中,消息生产端、消息中间件以及消息消费端基于HTTP协议进行消息传输,在一些实施例中,当消息生产端与消息消费端的传输协议不一致时,消息中间件可以将待传输的消息进行协议类型的转换,示例性的,可以是解析消息内容,基于消息消费端对应的协议对解析后的消息内容进行封装,形成满足消息消费端协议的消息。
S130、对待传输消息进行管理,并将待传输消息通过第一消息接收接口传输至对应的消息消费端。
其中,消息中间件对待传输消息的管理可以包括消息接收、消息存储和消息解析等。具体的,消息解析可以是根据分析各个待传输消息,得到发送各个待传输消息的消息生产端,形成各消息生产端通过消息中间件所传输的所有待传输消息的统计数据;也可以是得到各个待传输消息最终要到达的消息消费端,形成各消息消费端通过消息中间件所接收的所有待传输消息的统计数据;还可以是根据每个待传输消息的数据内容、发送的消息生产端和最终要到达的消息消费端,生成日志数据,以方便后续对各个待传输消息进行信息追踪。
可选的,消息中间件在将待传输消息通过第一消息接收接口传输至消息消费端之后,判断该待传输消息是否成功传输至消息消费端,如图2所示,图2中将消息生产端设置为生产者,消息消费端设置为消费者。若该待传输消息未成功发送至消息消费端,则基于重发策略,将该待传输消息重新传输至消息消费端;若该待传输消息成功发送至消息消费端,则判断该传输消息是否还有其它消息消费端接收,若无,则从消息队列中删除该待传输消息。
此外,如图2所示,在向第一消息接收接口传输待传输消息之前,还可以获取生产者发送的对发布消息的说明,以及消费者对所接收的消息进行说明的订阅消息,当消息中间件在接收到生产者的发布消息时,基于判断策略和订阅消息,将消息准确推送至消费者。具体的,可以是判断生产者的发布消息的所指定的消费者,将消息准确推送至对应的消费者;还可以是根据消费者的订阅消息中的接收时间,将消息定时推送至对应的消费者;还可以是判断生产者的发布消息的消息类型,将消息并发推送给与该消息类型关联的消费者。
本实施例的技术方案,通过接收至少一个消息消费端发布的第一消息接收接口的接口标准,对第一消息接收接口进行注册;发布第二消息接收接口,基于第二消息接收接口接收消息生产端传输的待传输消息;对待传输消息进行管理,并将待传输消息通过第一消息接收接口传输至对应的消息消费端,实现了通过注册接口实时推送消息,从而实现消息生产端、消息中间件以及消息消费端之间的完全松耦合,解决了消息消费端对消息中间件版本的强依赖性,减少了开发成本,同时,提高了消息中间件的通用性,适用于不同开发环境的消息消费端。
可选的,在将待传输消息通过第一消息接收接口传输至对应的消息消费端之前,方法还包括:接收至少一个消息消费端发布的订阅策略;相应的,将待传输消息通过第一消息接收接口传输至对应的消息消费端,包括:基于各消息消费端的订阅策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端。
其中,订阅策略用于根据消息消费端的需求,对接收的待传输消息进行限定,以使消息中间件发送符合限定内容的待传输消息。订阅策略可以是诸如对接收消息的时间、接收消息的消息种类、接收消息的消息生产端或接收消息的消息内容等限定。示例性的,如消息消费端希望只在预设时间点接收消息,消息消费端希望只接收科技类消息的消息,消息消费端希望只接收某选定的消息生产端传输的消息,或消息消费端希望只接收包含特定内容的消息等。
需要说明的是,消息中间件在接收各消息消费端发布的订阅策略之前,发布订阅接口,基于订阅接口接收消息消费端传输的订阅策略。具体的,各消息消费端在获取到消息中间件发布的订阅接口后,各消息消费端通过注册订阅接口,将订阅策略通过订阅接口传输至消息中间件的订阅接口,以使消息中间件的订阅接口接收消息消费端发布的订阅策略。其中,订阅接口的协议由消息中间件进行设定。在本实施例中,通过订阅接口之间的数据传输,以及基于订阅策略来传输待传输消息至对应的消息消费端,实现了根据消息消费端的需求进行消息推送,适用于灵活的订阅管理需求场景下的消息发布。
可选的,订阅策略包括内容类型订阅策略、消息格式类型订阅策略、时间订阅策略中的一项或多项。
其中,内容类型订阅策略指对待传输消息的内容种类进行限定,内容类型可以是军事类、科技类或游戏类等。消息格式类型订阅策略指对待传输消息的格式进行限定,消息格式类型可以是文本格式、图片格式或表格格式等。时间订阅策略指对待传输消息的传输至消息消费端的时间进行限定,以达到将待传输消息定时发送至消息消费端的目的。在本实施例中,订阅策略包括内容类型订阅策略、消息格式类型订阅策略、时间订阅策略中的一项或多项,实现了根据针对消费端的实际需求的消息推送,适用于灵活的订阅管理需求场景下的消息发布。
可选的,在基于第二消息接收接口接收消息生产端传输的待传输消息之前,还包括:接收消息生产端传输的发送策略;相应的,将待传输消息通过第一消息接收接口传输至对应的消息消费端,包括:基于各消息消费端的订阅策略和待传输消息对应的发送策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端,其中,待传输消息中携带有消息生产端的标识。
其中,发送策略指对传输至消息消费端的各待传输消息的限定,发送策略可以是指定接收待传输消息的消息消费端,还可以是指定待传输信息传输至消息消费端的传输时间等,本申请对此不作限定。待传输消息通过携带消息生产端的标识,以使消息中间件通过消息消费端的订阅策略中对消息生产端的规定,将待传输消息发送至对应的消息消费端,或通过消息生产端的发送策略中对消息消费端的规定,将待传输消息发送至对应的消息消费端。具体的,发送策略可以是通过第二消息接收接口传输至消息中间件,也可以是由消息中间件发布发送策略接口,以使消息生产端对发送策略接口进行注册,将发送策略通过发送策略接口传输至消息中间件。在本实施例中,消息中间件通过各消息消费端的订阅策略、以及待传输消息对应的发送策略,将待传输消息传输至消息消费端,实现了消息生产端和消息消费端均可根据需求进行灵活的业务定制。
实施例二
图3为本发明实施例二提供的消息传输方法的流程示意图,本实施例在上述各实施例的基础上,增加了“根据至少一种数据标准确定待传输消息的描述消息”。在此基础上,进一步对“基于各消息消费端的订阅策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图3,本实施例提供的消息传输方法包括:
S310、接收至少一个消息消费端发布的第一消息接收接口的接口标准,基于该接口标准对第一消息接收接口进行注册。
S320、发布第二消息接收接口,基于第二消息接收接口接收消息生产端传输的待传输消息。
S330、接收至少一个消息消费端发生的订阅策略。
S340、根据至少一种数据标准确定待传输消息的描述消息。
其中,数据标准用于根据待传输消息的内容,对待传输消息的属性进行定义,如待传输消息的功能定义、数据类型定义、数据格式定义、编码方式定义或压缩/加密方式定义等。描述消息指对待传输消息的属性进行定义后的信息,示例性的,一个待传输消息的描述消息可以是提醒功能、文本类型、txt格式、Unicode编码或Haffman压缩。
S350、根据描述消息确定满足订阅策略的待传输消息,将满足订阅策略的待传输消息通过第一消息接收接口传输至对应的消息消费端。
其中,订阅策略可以是对待传输消息的功能、数据类型、数据格式、编码方式和压缩/加密方式中的一项或多项进行限定。具体的,在确定出待传输消息的描述消息之后,根据订阅策略对各待传输消息进行筛选或过滤,得到符合订阅策略的待传输消息,将符合订阅策略的待传输消息传输至对应的消息消费端。在本实施例中,通过根据至少一种数据标准确定待传输消息的描述消息,实现了根据待传输消息的描述消息确定传输至对应的消息消费端的待传输消息,以实现根据消息内容实时推送至对应的消息消费端,从而满足了在多种推送需求下对推送消息的区分,适用于多个消息消费端的消息定制场景。
实施例三
图4为本发明实施例三提供的一种消息中间件的结构示意图,本实施例可适用于需要将消息生产端传输的待传输消息,通过接口传输至对应的消息消费端的情形,该消息中间件具体包括:至少一个第二消息接收接口410、接口注册模块420、消息管理模块430和消息分发模块440。
至少一个第二消息接收接口410,用于接收消息生产端传输的待传输消息;
接口注册模块420,用于对至少一个消息消费端发布的第一消息接收接口进行注册;
消息管理模块430,与第二消息接收接口连接,对接收的待传输消息进行管理;
消息分发模块440,与注册的第一消息接收接口连接,用于对待传输消息通过第一消息接收接口传输至对应的消息生产端。
在本实施例中,通过至少一个第二消息接收接口接收消息生产端传输的待传输消息,基于接口注册模块对至少一个消息消费端发布的第一消息接收接口进行注册,通过消息管理模块对接收的待传输消息进行管理,并基于消息分发模块对待传输消息通过第一消息接收接口传输至对应的消息生产端,实现了通过注册接口进行消息消费,从而实现接收、推送消息的完全松耦合,解决了消费端对消息中间件版本的强依赖性,减少了开发成本,同时,提高了消息中间件的通用性,适用于不同开发环境的消费端。
可选的,消息消费端还可以通过主动获取的方式,接收消息中间件传输的待传输消息,如图5所示。其中,图5中的生产者为消息生产端,消费者为消息消费端,消息接收接口为第二消息接收接口,消息发布接口为第一消息接收接口,消息分发***为消息分发模块。消费者可以向消息中间件的消息发布接口发送请求以主动获取消息,以使消息中间件在接收到请求后,通过消息发布接口向消息消费端推送消息。并且,如图5所示,消息中间件还可以与邮件服务、短信服务***进行交互,从而通过消息分发***,将消息通过邮件下发、短信下发的方式,发送至邮箱发送接口和短信下发接收接口,实现了与短信***、邮箱***的对接,有助于消息中间件的扩展开发。
可选的,消息中间件还包括:生产者管理模块,用于对消息生产者进行注册管理和权限管理;消费者管理模块,用于对消息消费者进行注册管理、权限管理和接口管理;订阅管理模块,与订阅接口连接,用于对接收的订阅策略进行管理。
其中,消息生产者指消息生产端,消息消费者指消息消费端。如图6所示,生产者管理模块可以根据第二消息接收接口中接收的各待传输消息,对发送各待传输消息的消息生产端的信息进行注册,以区分不用的消息生产端,并通过对消息生产端的权限管理,以对使用消息中间件传输消息的消息生产端进行限定。可选的,生产者管理模块还可以对消息生产端进行数据统计,如图6所示,即对基于本消息中间件进行消息传输的消息生产端的个数进行统计,或对各消息生产端传输的消息数量进行统计等。相应的,消费者管理模块也可以实现对消息消费端的注册管理、权限管理和数据统计。消费者管理模块还可以对消息消费者进行接口管理,即根据消息消费者的第一消息接收接口规定的协议,对消息中间件的对应第一消息接收接口的进行设定,或根据消息消费者规定的协议进行接口注册。在本实施例中,订阅接口指消息中间件接收订阅策略的接口,如图6所示,订阅管理模块对接收的订阅策略进行管理可以包括:消息订阅管理、接收形式定制和接收时间定制。
本实施例的技术方案,通过生产者管理模块、消费者管理模块实现对消费者和生产者的管理,通过订阅管理模块实现对接收的订阅策略的管理,从而实现了消息的管理、接收与推送。
可选的,上述消息中间件还包括:消息管理模块和策略管理模块,如图6所示,消息管理模块用于对待传输消息进行内容处理,如解密、解码或内容筛选等,消息管理模块还可以对消费者进行限定,以及对消费者的消费策略或生产者的发布策略进行限定,如限定某种消费策略或发布策略有效。策略管理模块用于重发机制管理、定时任务管理和并发策略管理。其中,并发策略管理用于选定接收待传输消息的多个消费者,以使待传输消息可以同时并行发送至多个消费者。消息中间件还可以包括存储模块,用于存储多种数据,如图6所示,包括消息数据、消费者数据、策略(发布策略)数据、订阅(订阅策略)数据、生产者数据和日志数据。消息中间件还可以包括消息分发引擎,与消息分发模块、存储模块相连接,用于根据存储模块中的数据,实现消息获取、消息推送、定时任务管理、重发管理、线程管理和日志管理。在本实施例中,通过消息管理模块实现对消息内容的解析和对策略的限定;通过策略管理模块实现消息发送的管理;通过存储模块存储各种数据;通过消息分发引擎实现消息从接收到推送过程的管理。
可选的,在上述消息中间件的基础上,还包括:订阅策略接口,用于在消息分发模块将待传输消息通过第一消息接收接口传输至对应的消息消费端之前,接收至少一个消息消费端发出的订阅策略,相应的,消息分发模块用于基于各消息消费端的订阅策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端。
可选的,上述消息中间件还包括:描述消息确定模块,与第二消息接收接口连接,用于消息分发模块基于各消息消费端的订阅策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端之前,根据至少一种数据标准确定待传输消息的描述消息;相应的,消息分发模块用于根据描述消息确定满足订阅策略的待传输消息,将满足订阅策略的待传输消息通过第一消息接收接口传输至对应的消息消费端。
可选的,订阅策略包括内容类型订阅策略、消息格式类型订阅策略、时间订阅策略中的一项或多项。
可选的,上述消息中间件还包括:发送策略接口,用于在基于第二消息接收接口接收消息生产端传输的待传输消息之前,接收所述消息生产端传输的发送策略;相应的,消息分发模块用于基于各消息消费端的订阅策略和待传输消息对应的发送策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端,其中,待传输消息中携带有消息生产端的标识。
可选的,消息消费端具有固定IP地址或域名。
本发明实施例所提供的消息中间件可执行本发明任意实施例所提供的消息传输方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述***所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
实施例四
图7为本发明实施例四提供的一种电子设备的结构示意图。图7示出了适于用来实现本发明实施例实施方式的示例性电子设备70的框图。图7显示的电子设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备70以通用计算设备的形式表现。电子设备70的组件可以包括但不限于:一个或者多个处理器或者处理单元701,***存储器702,连接不同***组件(包括***存储器702和处理单元701)的总线703。
总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
电子设备70典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备70访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器702可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)704和/或高速缓存存储器705。电子设备70可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***706可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线703相连。存储器702可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块707的程序/实用工具708,可以存储在例如存储器702中,这样的程序模块707包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块707通常执行本发明所描述的实施例中的功能和/或方法。
电子设备70也可以与一个或多个外部设备709(例如键盘、指向设备、显示器710等)通信,还可与一个或者多个使得用户能与该电子设备70交互的设备通信,和/或与使得该电子设备70能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口711进行。并且,电子设备70还可以通过网络适配器712与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器712通过总线703与电子设备70的其它模块通信。应当明白,尽管图7中未示出,可以结合设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元701通过运行存储在***存储器702中的程序,从而执行各种功能应用以及数据处理,例如实现本发实施例所提供的一种消息传输方法步骤,该方法包括:
接收至少一个消息消费端发布的第一消息接收接口的接口标准,对第一消息接收接口进行注册;
发布第二消息接收接口,基于第二消息接收接口接收消息生产端传输的待传输消息;
对待传输消息进行管理,并将待传输消息通过第一消息接收接口传输至对应的消息消费端。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供的消息传输方法的技术方案。
实施例五
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的消息传输方法步骤,该方法包括:
接收至少一个消息消费端发布的第一消息接收接口的接口标准,对第一消息接收接口进行注册;
发布第二消息接收接口,基于第二消息接收接口接收消息生产端传输的待传输消息;
对待传输消息进行管理,并将待传输消息通过第一消息接收接口传输至对应的消息消费端。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (7)
1.一种消息传输方法,其特征在于,应用于消息中间件,适用于需要将消息生产端传输的待传输消息,通过接口传输至对应的消息消费端的情况,包括:
接收至少一个消息消费端发布的第一消息接收接口的接口标准,基于所述第一消息接收接口的接口标准进行第一消息接收接口的注册;
发布第二消息接收接口,基于所述第二消息接收接口接收消息生产端传输的待传输消息;
对待传输消息进行管理,并将所述待传输消息通过注册的所述第一消息接收接口传输至对应的消息消费端;
其中,在将所述待传输消息通过所述第一消息接收接口传输至对应的消息消费端之前,所述方法还包括:
接收至少一个消息消费端发出的订阅策略;相应的,所述将所述待传输消息通过所述第一消息接收接口传输至对应的消息消费端,包括:
基于各消息消费端的订阅策略,通过第一消息接收接口将所述待传输消息传输至对应的消息消费端;
其中,所述订阅策略包括内容类型订阅策略、消息格式类型订阅策略、时间订阅策略中的一项或多项;
其中,所述订阅策略用于根据所述消息消费端的需求,对接收的所述待传输消息进行限定,以使所述消息中间件发送符合限定内容的所述待传输消息;
在基于各消息消费端的订阅策略,通过第一消息接收接口将所述待传输消息传输至对应的消息消费端之前,所述方法还包括:
根据至少一种数据标准确定所述待传输消息的描述消息,其中,数据标准用于根据待传输消息的内容,对待传输消息的属性进行定义,描述消息指对待传输消息的属性进行定义后的信息;
相应的,基于各消息消费端的订阅策略,通过所述第一消息接收接口将所述待传输消息传输至对应的消息消费端,包括:
根据所述描述消息确定满足所述订阅策略的待传输消息,将所述满足所述订阅策略的待传输消息通过所述第一消息接收接口传输至对应的消息消费端,其中,订阅策略是对待传输消息的功能、数据类型、数据格式、编码方式和压缩/加密方式中的一项或多项进行限定。
2.根据权利要求1所述的方法,其特征在于,在基于所述第二消息接收接口接收消息生产端传输的待传输消息之前,还包括:
接收所述消息生产端传输的发送策略;
相应的,所述将所述待传输消息通过所述第一消息接收接口传输至对应的消息消费端,包括:
基于各消息消费端的订阅策略和所述待传输消息对应的发送策略,通过第一消息接收接口将所述待传输消息传输至对应的消息消费端,其中,所述待传输消息中携带有消息生产端的标识。
3.根据权利要求1所述的方法,其特征在于,所述消息消费端具有固定IP地址或域名。
4.一种消息中间件,其特征在于,适用于需要将消息生产端传输的待传输消息,通过接口传输至对应的消息消费端的情况,包括:
至少一个第二消息接收接口,用于接收消息生产端传输的待传输消息;
接口注册模块,用于对至少一个消息消费端发布的第一消息接收接口进行注册;
消息管理模块,与所述第二消息接收接口连接,对接收的所述待传输消息进行管理;
消息分发模块,与注册的所述第一消息接收接口连接,用于将待传输消息通过所述第一消息接收接口传输至对应的消息生产端;
订阅策略接口,用于在消息分发模块将待传输消息通过第一消息接收接口传输至对应的消息消费端之前,接收至少一个消息消费端发出的订阅策略,相应的,消息分发模块用于基于各消息消费端的订阅策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端;
其中,所述订阅策略包括内容类型订阅策略、消息格式类型订阅策略、时间订阅策略中的一项或多项;
其中,所述订阅策略用于根据所述消息消费端的需求,对接收的所述待传输消息进行限定,以使所述消息中间件发送符合限定内容的所述待传输消息;
消息中间件还包括:
描述消息确定模块,与第二消息接收接口连接,用于消息分发模块基于各消息消费端的订阅策略,通过第一消息接收接口将待传输消息传输至对应的消息消费端之前,根据至少一种数据标准确定待传输消息的描述消息,其中,数据标准用于根据待传输消息的内容,对待传输消息的属性进行定义,描述消息指对待传输消息的属性进行定义后的信息;相应的,消息分发模块用于根据描述消息确定满足订阅策略的待传输消息,将满足订阅策略的待传输消息通过第一消息接收接口传输至对应的消息消费端,其中,订阅策略是对待传输消息的功能、数据类型、数据格式、编码方式和压缩/加密方式中的一项或多项进行限定。
5.根据权利要求4所述的消息中间件,其特征在于,包括:
生产者管理模块,用于对消息生产者进行注册管理和权限管理;
消费者管理模块,用于对消息消费者进行注册管理、权限管理和接口管理;
订阅管理模块,与订阅接口连接,用于对接收的订阅策略进行管理。
6.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一所述的消息传输方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一所述的消息传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011611596.0A CN112689020B (zh) | 2020-12-30 | 2020-12-30 | 一种消息传输方法、消息中间件、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011611596.0A CN112689020B (zh) | 2020-12-30 | 2020-12-30 | 一种消息传输方法、消息中间件、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112689020A CN112689020A (zh) | 2021-04-20 |
CN112689020B true CN112689020B (zh) | 2023-08-04 |
Family
ID=75455147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011611596.0A Active CN112689020B (zh) | 2020-12-30 | 2020-12-30 | 一种消息传输方法、消息中间件、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112689020B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254182A (zh) * | 2021-06-08 | 2021-08-13 | 挂号网(杭州)科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113986601B (zh) * | 2021-12-27 | 2022-04-26 | 飞狐信息技术(天津)有限公司 | 消费信息查询方法及装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101945056A (zh) * | 2009-06-29 | 2011-01-12 | 软件Ag公司 | 基于策略的jms中间件群的***和/或方法 |
CN103944924A (zh) * | 2014-05-15 | 2014-07-23 | 重庆邮电大学 | 一种基于RESTful的泛在网发布订阅中间件模型 |
CN109684114A (zh) * | 2019-01-02 | 2019-04-26 | 深圳乐信软件技术有限公司 | 基于iOS***的消息分发方法、装置、终端和介质 |
CN111327696A (zh) * | 2020-02-17 | 2020-06-23 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225717A1 (en) * | 2003-05-09 | 2004-11-11 | Alcatel | Network architecture for message based policy distribution |
-
2020
- 2020-12-30 CN CN202011611596.0A patent/CN112689020B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101945056A (zh) * | 2009-06-29 | 2011-01-12 | 软件Ag公司 | 基于策略的jms中间件群的***和/或方法 |
CN103944924A (zh) * | 2014-05-15 | 2014-07-23 | 重庆邮电大学 | 一种基于RESTful的泛在网发布订阅中间件模型 |
CN109684114A (zh) * | 2019-01-02 | 2019-04-26 | 深圳乐信软件技术有限公司 | 基于iOS***的消息分发方法、装置、终端和介质 |
CN111327696A (zh) * | 2020-02-17 | 2020-06-23 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN112689020A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8375094B2 (en) | Creating a message readable by a plurality of heterogeneous recipients | |
US20230168955A1 (en) | Method and system for processing a stream of incoming messages sent from a specific input message source and validating each incoming message of that stream before sending them to a specific target system | |
CN106874334B (zh) | 一种数据处理方法及装置、资讯处理*** | |
US7716290B2 (en) | Send by reference in a customizable, tag-based protocol | |
CN111367687A (zh) | 进程间数据通信方法和装置 | |
CN112689020B (zh) | 一种消息传输方法、消息中间件、电子设备及存储介质 | |
CN108628881A (zh) | 数据同步方法和装置 | |
US10303529B2 (en) | Protocol for communication of data structures | |
CN111736775A (zh) | 多源存储方法、装置、计算机***及存储介质 | |
KR20080101907A (ko) | Edi 거래 생성 방법 및 시스템, 및 컴퓨터 판독가능 매체 | |
WO2022053004A1 (zh) | 邮件处理方法、装置、电子设备及计算机可读介质 | |
US20130219009A1 (en) | Scalable data feed system | |
CN114385091A (zh) | 网盘盘符的实现方法、装置、网盘及存储介质 | |
US20110153882A1 (en) | Apparatus and method for transforming content | |
CN112417016B (zh) | 一种数据交换方法、***、设备及存储介质 | |
CN113992641A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111835801B (zh) | 文件下载方法、装置、服务器、边缘设备、终端及介质 | |
CN109981778B (zh) | 内容分发网络的服务实现方法、装置、设备及存储介质 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN111327680A (zh) | 认证数据同步方法、装置、***、计算机设备和存储介质 | |
CN112511636B (zh) | 数据传输***、方法、装置、计算机设备及存储介质 | |
CN115665274A (zh) | 异构协议的数据传输方法、***、电子设备及存储介质 | |
CN112965750B (zh) | Ip化多媒体资源的显示与控制***及方法 | |
CN112134938B (zh) | 一种消息处理方法、装置、终端及计算机可读存储介质 | |
CN114125732A (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 |