CN105610926A - 消息传递方法、系统和消息中间件系统 - Google Patents

消息传递方法、系统和消息中间件系统 Download PDF

Info

Publication number
CN105610926A
CN105610926A CN201510982219.0A CN201510982219A CN105610926A CN 105610926 A CN105610926 A CN 105610926A CN 201510982219 A CN201510982219 A CN 201510982219A CN 105610926 A CN105610926 A CN 105610926A
Authority
CN
China
Prior art keywords
message
queue
passage
middleware
metadata
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
Application number
CN201510982219.0A
Other languages
English (en)
Other versions
CN105610926B (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.)
Vipshop Guangzhou Software Co Ltd
Original Assignee
Guangzhou Vipshop Information 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 Guangzhou Vipshop Information And Technology Co Ltd filed Critical Guangzhou Vipshop Information And Technology Co Ltd
Priority to CN201510982219.0A priority Critical patent/CN105610926B/zh
Publication of CN105610926A publication Critical patent/CN105610926A/zh
Application granted granted Critical
Publication of CN105610926B publication Critical patent/CN105610926B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种消息传递方法、系统和消息中间件,该方法包括:接收消息生产端输入的特性参数,并根据特征参数选择匹配中间件生成消息;消息包括消息体,消息体包括与匹配中间件对应的标识;根据消息体的标识,查找与匹配中间件对应的通道,并将消息存储在通道中;根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中;接收消息消费端的消费请求,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。该消息传递方法,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,能够满足多种业务场景的需求。

Description

消息传递方法、系统和消息中间件系统
技术领域
本发明涉及数据传输技术领域,特别是涉及一种消息传递方法、系统和消息中间件系统。
背景技术
由于广泛的存在跨应用的消息的传递和消费,在过去一段时间,我们使用轮询来解决这些问题,但是消息的及时性无法得到保证,而且存在大量的冗余设计,以致影响生产者的“业务主体性能”。
从框架建设角度来说,跨应用的消息的传递需要大量的信号通知和消息驱动来协调各个应用和环节。如果没有引入数据和事件驱动的概念,就无法从繁杂的业务和不断重叠的逻辑修改中解脱出来,完成实时准确的业务交付。在业界,开源社区和各大公司也有类似的中间件产品,比如腾讯tube,阿里的rocketmq,开源的kafka,rabbitmq等。tube、kafka能够照顾到海量的消息传输的场景,但是对于业务事务型要求很高的场景不能满足,而Rocketmq和rabbitmq的场景在事务上有比较丰富的支持,但是对于并发的需求和顺序的要求满足的不是很好。
因此,现有的中间件产品不能满足多样性场景的需求。
发明内容
基于此,有必要提供一种能满足多样性场景需求的消息传递方法、系统和消息中间件系统。
一种消息传递方法,包括:
接收消息生产端输入的特性参数,并根据特征参数选择匹配中间件生成消息;消息包括消息体,消息体包括与匹配中间件对应的标识;
根据消息体的标识,查找与匹配中间件对应的通道,并将消息存储在通道中;
根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中;
接收消息消费端的消费请求,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。
在其中一种实施方式中,根据消息体的标识,查找与匹配中间件对应的通道,并将消息存储在通道中的步骤,包括:
获取通道的元数据,查找与消息体的标识对应的元数据并确定元数据对应的通道;
将消息存储在通道中。
在其中一种实施方式中,根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中的步骤,包括:
获取队列的元数据,查找与通道的元数据对应的队列的元数据并确定通道对应的队列;
将消息路由至队列中。
在其中一种实施方式中,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
一种消息传递系统,包括:
消息生成模块,用于接收消息生产端输入的特性参数,并根据特征参数选择匹配中间件生成消息;消息包括消息体,消息体包括与匹配中间件对应的标识;
存储模块,用于根据消息体的标识,查找与匹配中间件对应的通道,并将消息存储在通道中;
路由模块,用于根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中;
消息发送模块,用于接收消息消费端的消费请求,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。
在其中一种实施方式中,存储模块包括:
第一查找单元,用于获取通道的元数据,查找与消息体的标识对应的元数据并确定元数据对应的通道,
存储单元,用于将消息存储在通道中。
在其中一种实施方式中,路由模块包括:
第二查找单元,用于获取队列的元数据,查找与通道的元数据对应的队列的元数据并确定通道对应的队列;
路由单元,用于将消息路由至队列中。
在其中一种实施方式中,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
一种消息中间件系统,包括:多个类型的中间件、与每个中间件对应的多个通道以及与每个通道对应的多个队列;
中间件,用于根据与其匹配的特性参数生成消息,消息包括消息体,消息体包括与匹配中间件对应的标识;
通道,用于根据消息体的标识,存储对应的中间件生成的消息;
队列,用于路由与其对应通道的消息
在其中一种实施方式中,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项;中间件包括kafka、rabbitmq和Rocketmq。
该消息传递方法,通道对面消息生产端,队列面对消息消费端,通道与队列预先建立对应关系。当消息生产端需要产生消息时,根据输入的特征参数选择匹配中间件生成消息并存储在该匹配中间件对应的通道中,根据通道确定与通道对应的路由路径,将消息路由至通道对应的队列中,当接收到消费端的消费请求时,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。该消息传递方法,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,因此,能够满足多种业务场景的需求。
附图说明
图1为一种实施方式的消息传递方法的流程图;
图2为一种实施方式的消息传递方法的原理图;
图3为一种实施方式的将消息存储在通道的方法的流程图;
图4为一种实施方式的将消息路由至队列的方法的流程图;
图5为一种实施方式的消息传递系统的功能模块示意图。
具体实施方式
如图1和图2所示,一种消息传递方法,包括以下步骤:
S10:接收消息生产端输入的特性参数,并根据特征参数选择匹配中间件生成消息。
消息生产端是指消息生产者所在的用户端,消息生产者是指消息数据的源头,消息数据的生产方。消息生产者通过平台输入与消息相关的特征参数,根据特征参数选择匹配的中间件生成消息。
消息包括消息体,消息体是各类型中间件消息的head/body所支持特性上取并集,在数据压缩方面采用protobuf的方式编码传输。消息体包括与匹配中间件对应的标识。
S30:根据消息体的标识,查找与匹配中间件对应的通道,并将消息存储在通道中。
通道(Channel)面向消息生产者,是消息数据的一个存储管道。每种中间件包括多个通道,生成消息后,根据其消息体的标识,查找与该标识对应的通道,将消息存储在该通道中。
S50:根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中。
队列(Queue)面向消息消费者,是消息数据路由后的队列,一个通道(Channel)可与多个队列(Queue)对应,因此,一个通道(Channel)的消息可以发往多个队列(Queue),一个队列(Queue)可以消息多个通道(Channel)的消息。
S70:接收消息消费端的消费请求,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。
队列(Queue)面向消费者,消息消费端与队列预先对应,当接收到消息消费端的消费请求时,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。
该消息传递方法,通道对面消息生产端,队列面对消息消费端,通道与队列预先建立对应关系。当消息生产端需要产生消息时,根据输入的特征参数选择匹配中间件生成消息并存储在该匹配中间件对应的通道中,根据通道确定与通道对应的路由路径,将消息路由至通道对应的队列中,当接收到消费端的消费请求时,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。该消息传递方法,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,因此,能够满足多种业务场景的需求,且消息生产端不关心消息数据会最终到达哪里,何时数据会被拿走,消费者拿取消息数据时不关心数据本身,直接从与其对应的队列中获取消费消息。
在另一种实施方式中,中间件包括kafka、rabbitmq和Rocketmq等多种方式。Kafka对消息的并发比较大的场景支持的比较好,Rabbitmq对消息的事务场景支持的比较好。
在另一种实施方式中,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
用户根据需求输入消息的特征参数,自动选择匹配的中间件类型,例如,若消息特征参数为支持事务性,将匹配Rocketmq或rabbitmq中间件。
根据用户输入的特征参数选择匹配的中间件类型生成消息,将消息存储在与该匹配的中间件对应的通道中,根据通道确定与该通道对应的路由路径,再将消息路至该队列中。该消息传递方法中的通道和队列在不同的中间件中代表的实体含义不同,如表1所示。
表1通道和队列在不同的中间件中代表的实体含义
中间件类型 通道 队列
Kafka Topic GroupId
Rabbitmq Exchange Queue
Rocketmq Topic GroupName
以Kafka为命名,在Kafka中间件中,通道对应的是Kafka中的Topic,队列对应的是Kafka中的GroupId。
在一种实施方式中,如图3所示,步骤S30具体包括:
S31:获取通道的元数据,查找与消息体的标识对应的元数据并确定元数据对应的通道。
通道的元数据表征通道的属性,Channel主要属性:vms.inboundName=(kafka->topic/rabbitmq->exchange)
vms.clusterId=(connectionstring);
ClusterId描述的是逻辑的连接字符串,其抽象了kafka和rabbitmq的连接,其指代的数据结构:
configServer=(kafkazookeeper地址)
Brokerserver=(kafka/rabbitmq的真实连接字符串)
BrokerServer.product=(用于区分kafka和rabbitmq)
ConfigServer.product=(用于描述configserver类型)
其它属性:如rabbimq使用的vhost/username/password属性
通道(Channel)对消息发送起至关重要的作用,客户端应该连接那个消息系统,发送到kafka哪个topic或者rabbitmq的哪个exchange,需从其属性字段中获得对应内容。
S32:将消息存储在通道中。
在另一种实施方式中,如图4所示,步骤S50具体包括:
S51:获取队列的元数据,查找与通道的元数据对应的队列的元数据并确定通道对应的队列。
队列的元数据表征通道的属性,一种实施方式的队列的属性如下所示:
vms.outboundName=(kafka->groupid/rabbitmq->queuename)
vms.clusterId=(connectionstring)
vms.bindings=(kafka->topicNm/rabbitmq->bindingrelationship)
此处vms.clusterid同channel的vms.clusterid,在此不再赘述。
队列(Queue),主要应用在消费逻辑中,通过其中指定的属性来确定连接哪类消息系统以及确定消费路由路径。
S52:将消息路由至队列中。
本发明的消息传递方法,通过将多种类型的中间件进行整合,当消息生产端需要产生消息时,根据输入的特征参数选择匹配中间件生成消息并存储在该匹配中间件对应的通道中,根据通道确定与通道对应的路由路径,将消息路由至通道对应的队列中,当接收到消费端的消费请求时,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。该消息传递方法,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,能够满足多种业务场景的需求。
本发明还提供一种消息传递系统,如图5所示,包括:
消息生成模块10,用于接收消息生产端输入的特性参数,并根据特征参数选择匹配中间件生成消息;消息包括消息体,消息体包括与匹配中间件对应的标识。
消息生产端是指消息生产者所在的用户端,消息生产者是指消息数据的源头,消息数据的生产方。消息生产者通过平台输入与消息相关的特征参数,根据特征参数选择匹配的中间件生成消息。
消息包括消息体,消息体是各类型中间件消息的head/body所支持特性上取并集,在数据压缩方面采用protobuf的方式编码传输。消息体包括与匹配中间件对应的标识。
存储模块20,用于根据消息体的标识,查找与匹配中间件对应的通道,并将消息存储在通道中。
通道(Channel)面向消息生产者,是消息数据的一个存储管道。每种中间件包括多个通道,生成消息后,根据其消息体的标识,查找与该标识对应的通道,将消息存储在该通道中。
路由模块30,用于根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中。
队列(Queue)面向消息消费者,是消息数据路由后的队列,一个通道(Channel)可与多个队列(Queue)对应,因此,一个通道(Channel)的消息可以发往多个队列(Queue),一个队列(Queue)可以消息多个通道(Channel)的消息。
消息发送模块40,用于接收消息消费端的消费请求,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。
队列(Queue)面向消费者,消息消费端与队列预先对应,当接收到消息消费端的消费请求时,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。
该消息传递系统,通道对面消息生产端,队列面对消息消费端,通道与队列预先建立对应关系。当消息生产端需要产生消息时,根据输入的特征参数选择匹配中间件生成消息并存储在该匹配中间件对应的通道中,根据通道确定与通道对应的路由路径,将消息路由至通道对应的队列中,当接收到消费端的消费请求时,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。该消息传递系统系统,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,能够满足多种业务场景的需求,且消息生产端不关心消息数据会最终到达哪里,何时数据会被拿走,消费者拿取消息数据时不关心数据本身,直接从与其对应的队列中获取消费消息。
在另一种实施方式中,中间件包括kafka、rabbitmq和Rocketmq等多种方式。Kafka对消息的并发比较大的场景支持的比较好,Rabbitmq对消息的事务场景支持的比较好。
在另一种实施方式中,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
用户根据需求输入消息的特征参数,自动选择匹配的中间件类型,例如,若消息特征参数为支持事务性,将匹配Rocketmq或rabbitmq中间件。
根据用户输入的特征参数匹配的中间件类型生成消息,将消息存储在与该匹配的中间件对应的通道中,根据通道确定与该通道对应的路由路径,再将消息路至该队列中。该消息传递系统中的通道和队列在不同的中间件中代表的实体含义不同,如表1所示。
以Kafka为命名,在Kafka中间件中,通道对应的是Kafka中的Topic,队列对应的是Kafka中的GroupId。
在另一种实施方式中,存储模块20包括:
第一查找单元,用于获取通道的元数据,查找与消息体的标识对应的元数据并确定元数据对应的通道。
通道的元数据表征通道的属性,Channel主要属性:vms.inboundName=(kafka->topic/rabbitmq->exchange)
vms.clusterId=(connectionstring);
ClusterId描述的是逻辑的连接字符串,其抽象了kafka和rabbitmq的连接,其指代的数据结构:
configServer=(kafkazookeeper地址)
Brokerserver=(kafka/rabbitmq的真实连接字符串)
BrokerServer.product=(用于区分kafka和rabbitmq)
ConfigServer.product=(用于描述configserver类型)
其它属性:如rabbimq使用的vhost/username/password属性
通道(Channel)对消息发送起至关重要的作用,客户端应该连接那个消息系统,发送到kafka哪个topic或者rabbitmq的哪个exchange,需从其属性字段中获得对应内容。
存储单元,用于将消息存储在通道中。
在另一种实施方式中,路由模块包括:
第二查找单元,用于获取队列的元数据,查找与通道的元数据对应的队列的元数据并确定通道对应的队列。
队列的元数据表征通道的属性,一种实施方式的队列的属性如下所示:
vms.outboundName=(kafka->groupid/rabbitmq->queuename)
vms.clusterId=(connectionstring)
vms.bindings=(kafka->topicNm/rabbitmq->bindingrelationship)
此处vms.clusterid同channel的vms.clusterid,在此不再赘述。
队列(Queue),主要应用在消费逻辑中,通过其中指定的属性来确定连接哪类消息系统以及确定消费路由路径。
路由单元,用于将消息路由至队列中。
本发明的消息传递系统,通过将多种类型的中间件进行整合,当消息生产端需要产生消息时,根据输入的特征参数选择匹配中间件生成消息并存储在该匹配中间件对应的通道中,根据通道确定与通道对应的路由路径,将消息路由至通道对应的队列中,当接收到消费端的消费请求时,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。该消息传递系统,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,能够满足多种业务场景的需求。
本发明还提供一种消息中间件系统,包括多个类型的中间件、与每个中间件对应的多个通道以及与每个通道对应的多个队列。
中间件,用于根据与其匹配的特性参数生成消息,消息包括消息体,消息体包括与匹配中间件对应的标识。
消息生产者通过平台输入与消息相关的特征参数,根据特征参数选择匹配的中间件生成消息。消息包括消息体,消息体是各类型中间件消息的head/body所支持特性上取并集,在数据压缩方面采用protobuf的方式编码传输。消息体包括与匹配中间件对应的标识。
通道,用于根据消息体的标识,存储对应的中间件生成的消息。
通道(Channel)面向消息生产者,是消息数据的一个存储管道。每种中间件包括多个通道,生成消息后,根据其消息体的标识,查找与该标识对应的通道,将消息存储在该通道中。
队列,用于路由与其对应通道的消息。
队列(Queue)面向消息消费者,是消息数据路由后的队列,一个通道(Channel)可与多个队列(Queue)对应,因此,一个通道(Channel)的消息可以发往多个队列(Queue),一个队列(Queue)可以消息多个通道(Channel)的消息。
具体的,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项;中间件包括kafka、rabbitmq和Rocketmq。
Kafka对消息的并发比较大的场景支持的比较好,Rabbitmq对消息的事务场景支持的比较好。
在另一种实施方式中,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
用户根据需求输入消息的特征参数,自动选择匹配的中间件类型,例如,若消息特征参数为支持事务性,将匹配Rocketmq或rabbitmq中间件。
根据用户输入的特征参数选择匹配的中间件类型生成消息,将消息存储在与该匹配的中间件对应的通道中,根据通道确定与该通道对应的路由路径,再将消息路至该队列中。
该消息中间件系统,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,因此,能够满足多种业务场景的需求,且消息生产端不关心消息数据会最终到达哪里,何时数据会被拿走,消费者拿取消息数据时不关心数据本身,直接从与其对应的队列中获取消费消息。
在具体的实施方式中,通过通道和消息的元数据确定中间件与通道以及通道与队列的对应关系。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种消息传递方法,包括:
接收消息生产端输入的特性参数,并根据所述特征参数选择匹配中间件生成消息;所述消息包括消息体,所述消息体包括与所述匹配中间件对应的标识;
根据所述消息体的标识,查找与所述匹配中间件对应的通道,并将所述消息存储在所述通道中;
根据所述通道确定与所述通道对应的路由路径,将所述消息路由至与所述通道对应的队列中;
接收消息消费端的消费请求,查找与所述消费端对应的队列,根据所述消费请求将所述对应的队列中的消息发送给所述消息消费端。
2.根据权利要求1所述的消息传递方法,其特征在于,所述根据所述消息体的标识,查找与所述匹配中间件对应的通道,并将所述消息存储在所述通道中的步骤,包括:
获取通道的元数据,查找与所述消息体的标识对应的元数据并确定所述元数据对应的通道;
将所述消息存储在所述通道中。
3.根据权利要求1所述的消息传递方法,其特征在于,所述根据所述通道确定与所述通道对应的路由路径,将所述消息路由至与所述通道对应的队列中的步骤,包括:
获取队列的元数据,查找与所述通道的元数据对应的队列的元数据并确定所述通道对应的队列;
将所述消息路由至所述队列中。
4.根据权利要求1所述的消息传递方法,其特征在于,所述特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
5.一种消息传递系统,包括:
消息生成模块,用于接收消息生产端输入的特性参数,并根据所述特征参数选择匹配中间件生成消息;所述消息包括消息体,所述消息体包括与所述匹配中间件对应的标识;
存储模块,用于根据所述消息体的标识,查找与所述匹配中间件对应的通道,并将所述消息存储在所述通道中;
路由模块,用于根据所述通道确定与所述通道对应的路由路径,将所述消息路由至与所述通道对应的队列中;
消息发送模块,用于接收消息消费端的消费请求,查找与所述消费端对应的队列,根据所述消费请求将所述对应的队列中的消息发送给所述消息消费端。
6.根据权利要求5所述的消息传递系统,其特征在于,所述存储模块包括:
第一查找单元,用于获取通道的元数据,查找与所述消息体的标识对应的元数据并确定所述元数据对应的通道;
存储单元,用于将所述消息存储在所述通道中。
7.根据权利要求5所述的消息传递系统,其特征在于,所述路由模块包括:
第二查找单元,用于获取队列的元数据,查找与所述通道的元数据对应的队列的元数据并确定所述通道对应的队列;
路由单元,用于将所述消息路由至所述队列中。
8.根据权利要求5所述的消息传递系统,其特征在于,所述特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
9.一种消息中间件系统,包括:多个类型的中间件、与每个所述中间件对应的多个通道以及与每个通道对应的多个队列;
所述中间件,用于根据与其匹配的特性参数生成消息,所述消息包括消息体,所述消息体包括与所述匹配中间件对应的标识;
所述通道,用于根据所述消息体的标识,存储对应的中间件生成的消息;
所述队列,用于路由与其对应通道的消息。
10.根据权利要求9所述的消息中间件系统,其特征在于,所述特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项;所述中间件包括kafka、rabbitmq和Rocketmq。
CN201510982219.0A 2015-12-22 2015-12-22 消息传递方法、系统和消息中间件系统 Active CN105610926B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510982219.0A CN105610926B (zh) 2015-12-22 2015-12-22 消息传递方法、系统和消息中间件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510982219.0A CN105610926B (zh) 2015-12-22 2015-12-22 消息传递方法、系统和消息中间件系统

Publications (2)

Publication Number Publication Date
CN105610926A true CN105610926A (zh) 2016-05-25
CN105610926B CN105610926B (zh) 2019-01-11

Family

ID=55990460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510982219.0A Active CN105610926B (zh) 2015-12-22 2015-12-22 消息传递方法、系统和消息中间件系统

Country Status (1)

Country Link
CN (1) CN105610926B (zh)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250249A (zh) * 2016-08-09 2016-12-21 广州唯品会信息科技有限公司 消息队列的控制方法及装置
CN107171929A (zh) * 2017-04-11 2017-09-15 广州市食蚁兽网络技术有限公司 一种情绪发泄实时安抚服务系统
CN107391275A (zh) * 2017-06-30 2017-11-24 联想(北京)有限公司 一种消息处理方法及电子设备
CN107506371A (zh) * 2017-07-07 2017-12-22 北京奇虎科技有限公司 一种分布式消息系统中的数据处理方法和装置
CN107592364A (zh) * 2017-09-22 2018-01-16 中汇信息技术(上海)有限公司 一种分布式消息交换方法和系统
CN108848031A (zh) * 2018-06-14 2018-11-20 深圳金证引擎科技有限公司 信息传输方法及装置
CN108881492A (zh) * 2018-08-08 2018-11-23 百卓网络科技有限公司 一种解决消息处理顺序及疏导消息处理的方法
CN108897607A (zh) * 2018-06-05 2018-11-27 中国平安人寿保险股份有限公司 消息处理方法、装置、电子设备及存储介质
CN108984318A (zh) * 2018-06-22 2018-12-11 广州唯品会信息科技有限公司 基于驱动模型的消息投递方法、装置及可读存储介质
WO2018233592A1 (zh) * 2017-06-20 2018-12-27 中兴通讯股份有限公司 消息保序方法、网络节点及存储介质
CN109558069A (zh) * 2017-09-27 2019-04-02 阿里巴巴集团控股有限公司 一种存储消息的方法和装置与一种读取消息的方法和装置
CN109711122A (zh) * 2019-01-23 2019-05-03 北京奇艺世纪科技有限公司 一种权限管理方法、装置、系统、设备及可读存储介质
CN109885410A (zh) * 2019-01-09 2019-06-14 广州视源电子科技股份有限公司 消息发送方法、装置、计算机设备和存储介质
CN110365605A (zh) * 2019-06-28 2019-10-22 浙江吉利控股集团有限公司 一种消息发送方法、装置、设备及存储介质
CN110909063A (zh) * 2019-11-28 2020-03-24 蜂助手股份有限公司 一种用户行为的分析方法、装置、应用服务器及存储介质
CN111381986A (zh) * 2020-03-10 2020-07-07 北京奇艺世纪科技有限公司 消息传输方法、系统、装置、电子设备及可读存储介质
CN111679922A (zh) * 2020-06-10 2020-09-18 中国银行股份有限公司 基于事件驱动的消息发布方法、装置及系统
CN111756652A (zh) * 2020-06-11 2020-10-09 上海乾臻信息科技有限公司 消息传输及消息队列管理方法、装置及系统
CN112099975A (zh) * 2020-09-25 2020-12-18 Oppo广东移动通信有限公司 一种消息处理方法及系统、存储介质
CN112235205A (zh) * 2020-09-21 2021-01-15 珠海市卓轩科技有限公司 一种发送和消费mq消息的方法、装置及存储介质
CN112751772A (zh) * 2019-10-31 2021-05-04 上海哔哩哔哩科技有限公司 数据传输方法和系统
CN113645576A (zh) * 2021-08-20 2021-11-12 苏州良医汇网络科技有限公司 一种统一消息方法及系统
CN114385728A (zh) * 2021-12-15 2022-04-22 江苏瑞中数据股份有限公司 一种基于数据转换整合的实时数据处理方法
CN114666226A (zh) * 2022-05-25 2022-06-24 杭州谐云科技有限公司 一种大规模边缘集群管理方法和系统
CN114979257A (zh) * 2022-05-24 2022-08-30 树根互联股份有限公司 消息推送方法、装置、计算机设备及计算机可读存储介质
CN115086419A (zh) * 2022-07-24 2022-09-20 浙江大学 一种基于消息机制的跨三方系统传输消息中心系统
CN115278561A (zh) * 2022-06-01 2022-11-01 浪潮软件股份有限公司 一种应用于政务领域的多通道短信服务优化方法
CN115695532A (zh) * 2023-01-04 2023-02-03 深圳竹云科技股份有限公司 利用消息中间件处理消息的方法、装置、计算机设备
CN114385728B (zh) * 2021-12-15 2024-07-19 江苏瑞中数据股份有限公司 一种基于数据转换整合的实时数据处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1229219A (zh) * 1998-11-23 1999-09-22 深圳市金门桥电脑网络有限公司 一种综合信息服务平台系统及其方法
US20110082917A1 (en) * 2009-09-30 2011-04-07 Soederberg Jan Ok Quick upload
CN102377686A (zh) * 2010-08-10 2012-03-14 阿里巴巴集团控股有限公司 一种消息订阅系统、消息订阅方法及装置
CN103873318A (zh) * 2012-12-18 2014-06-18 阿里巴巴集团控股有限公司 一种网站自动化测试方法及自动化测试系统
CN103888456A (zh) * 2014-03-18 2014-06-25 国家电网公司 一种网页客户端、服务端以及数据处理装置和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1229219A (zh) * 1998-11-23 1999-09-22 深圳市金门桥电脑网络有限公司 一种综合信息服务平台系统及其方法
US20110082917A1 (en) * 2009-09-30 2011-04-07 Soederberg Jan Ok Quick upload
CN102377686A (zh) * 2010-08-10 2012-03-14 阿里巴巴集团控股有限公司 一种消息订阅系统、消息订阅方法及装置
CN103873318A (zh) * 2012-12-18 2014-06-18 阿里巴巴集团控股有限公司 一种网站自动化测试方法及自动化测试系统
CN103888456A (zh) * 2014-03-18 2014-06-25 国家电网公司 一种网页客户端、服务端以及数据处理装置和方法

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250249A (zh) * 2016-08-09 2016-12-21 广州唯品会信息科技有限公司 消息队列的控制方法及装置
CN107171929A (zh) * 2017-04-11 2017-09-15 广州市食蚁兽网络技术有限公司 一种情绪发泄实时安抚服务系统
WO2018233592A1 (zh) * 2017-06-20 2018-12-27 中兴通讯股份有限公司 消息保序方法、网络节点及存储介质
CN107391275A (zh) * 2017-06-30 2017-11-24 联想(北京)有限公司 一种消息处理方法及电子设备
CN107506371A (zh) * 2017-07-07 2017-12-22 北京奇虎科技有限公司 一种分布式消息系统中的数据处理方法和装置
CN107592364A (zh) * 2017-09-22 2018-01-16 中汇信息技术(上海)有限公司 一种分布式消息交换方法和系统
CN109558069A (zh) * 2017-09-27 2019-04-02 阿里巴巴集团控股有限公司 一种存储消息的方法和装置与一种读取消息的方法和装置
CN109558069B (zh) * 2017-09-27 2022-06-10 阿里巴巴集团控股有限公司 一种存储消息的方法和装置与一种读取消息的方法和装置
CN108897607A (zh) * 2018-06-05 2018-11-27 中国平安人寿保险股份有限公司 消息处理方法、装置、电子设备及存储介质
CN108848031A (zh) * 2018-06-14 2018-11-20 深圳金证引擎科技有限公司 信息传输方法及装置
CN108984318A (zh) * 2018-06-22 2018-12-11 广州唯品会信息科技有限公司 基于驱动模型的消息投递方法、装置及可读存储介质
CN108881492A (zh) * 2018-08-08 2018-11-23 百卓网络科技有限公司 一种解决消息处理顺序及疏导消息处理的方法
CN108881492B (zh) * 2018-08-08 2020-03-31 百卓网络科技有限公司 一种解决消息处理顺序及疏导消息处理的方法
CN109885410A (zh) * 2019-01-09 2019-06-14 广州视源电子科技股份有限公司 消息发送方法、装置、计算机设备和存储介质
CN109711122A (zh) * 2019-01-23 2019-05-03 北京奇艺世纪科技有限公司 一种权限管理方法、装置、系统、设备及可读存储介质
CN110365605A (zh) * 2019-06-28 2019-10-22 浙江吉利控股集团有限公司 一种消息发送方法、装置、设备及存储介质
CN110365605B (zh) * 2019-06-28 2023-01-10 浙江吉利控股集团有限公司 一种消息发送方法、装置、设备及存储介质
CN112751772A (zh) * 2019-10-31 2021-05-04 上海哔哩哔哩科技有限公司 数据传输方法和系统
CN112751772B (zh) * 2019-10-31 2023-01-24 上海哔哩哔哩科技有限公司 数据传输方法和系统
CN110909063A (zh) * 2019-11-28 2020-03-24 蜂助手股份有限公司 一种用户行为的分析方法、装置、应用服务器及存储介质
CN111381986A (zh) * 2020-03-10 2020-07-07 北京奇艺世纪科技有限公司 消息传输方法、系统、装置、电子设备及可读存储介质
CN111381986B (zh) * 2020-03-10 2024-04-16 北京奇艺世纪科技有限公司 消息传输方法、系统、装置、电子设备及可读存储介质
CN111679922A (zh) * 2020-06-10 2020-09-18 中国银行股份有限公司 基于事件驱动的消息发布方法、装置及系统
CN111756652A (zh) * 2020-06-11 2020-10-09 上海乾臻信息科技有限公司 消息传输及消息队列管理方法、装置及系统
CN111756652B (zh) * 2020-06-11 2023-07-18 上海乾臻信息科技有限公司 消息传输及消息队列管理方法、装置及系统
CN112235205A (zh) * 2020-09-21 2021-01-15 珠海市卓轩科技有限公司 一种发送和消费mq消息的方法、装置及存储介质
CN112235205B (zh) * 2020-09-21 2022-07-01 珠海市卓轩科技有限公司 一种发送和消费mq消息的方法、装置及存储介质
CN112099975A (zh) * 2020-09-25 2020-12-18 Oppo广东移动通信有限公司 一种消息处理方法及系统、存储介质
CN112099975B (zh) * 2020-09-25 2024-03-26 Oppo广东移动通信有限公司 一种消息处理方法及系统、存储介质
CN113645576A (zh) * 2021-08-20 2021-11-12 苏州良医汇网络科技有限公司 一种统一消息方法及系统
CN113645576B (zh) * 2021-08-20 2023-03-24 苏州良医汇网络科技有限公司 一种统一消息方法及系统
CN114385728A (zh) * 2021-12-15 2022-04-22 江苏瑞中数据股份有限公司 一种基于数据转换整合的实时数据处理方法
CN114385728B (zh) * 2021-12-15 2024-07-19 江苏瑞中数据股份有限公司 一种基于数据转换整合的实时数据处理方法
CN114979257A (zh) * 2022-05-24 2022-08-30 树根互联股份有限公司 消息推送方法、装置、计算机设备及计算机可读存储介质
CN114666226A (zh) * 2022-05-25 2022-06-24 杭州谐云科技有限公司 一种大规模边缘集群管理方法和系统
CN114666226B (zh) * 2022-05-25 2022-11-18 杭州谐云科技有限公司 一种大规模边缘集群管理方法和系统
CN115278561A (zh) * 2022-06-01 2022-11-01 浪潮软件股份有限公司 一种应用于政务领域的多通道短信服务优化方法
CN115086419A (zh) * 2022-07-24 2022-09-20 浙江大学 一种基于消息机制的跨三方系统传输消息中心系统
CN115695532A (zh) * 2023-01-04 2023-02-03 深圳竹云科技股份有限公司 利用消息中间件处理消息的方法、装置、计算机设备
CN115695532B (zh) * 2023-01-04 2023-03-10 深圳竹云科技股份有限公司 利用消息中间件处理消息的方法、装置、计算机设备

Also Published As

Publication number Publication date
CN105610926B (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
CN105610926A (zh) 消息传递方法、系统和消息中间件系统
US9742667B2 (en) Packet processing method, device and system
CN106293968B (zh) 一种基于Kafka消息中间件的双向通信系统及方法
CN104104591B (zh) 消息推送方法及系统
US9906629B2 (en) Persistent format conversions
CN101388997B (zh) 一种建立视频会议的方法和系统
CN101163117B (zh) 一种群组管理方法、群组资源共享方法及即时通讯装置
CN102497333B (zh) 用以输出联系人对象天气信息的方法、客户端及系统
US20130046836A1 (en) Synchronizing conversation structures in web-based email systems
US8547877B2 (en) RSTP tracking
CN103136370B (zh) 元数据的恢复方法和装置
CN103916306A (zh) 实现即时通信的方法和装置
US9659098B2 (en) Method, computer program and computer for detecting communities in social media
CN105141502A (zh) 一种即时通信过程的管理方法及装置
CN103491156A (zh) 一种基于融合通信实现圈子与群组同步的方法及系统
CN103532828A (zh) 一种基于扩展的xmpp协议的富文本格式实现系统和方法
CN102572604B (zh) 基于p2p网络的视频点播系统及点播方法
US10685069B2 (en) Message system for social networks
US20140032744A1 (en) Method of comparing outputs in a plurality of information systems
CN105743772A (zh) 一种消息处理的方法及系统
WO2019056922A1 (zh) 基于快速重路由的vpws bypass保护倒换方法及系统
CN102946414B (zh) 一种社会性网络与网络视频的互动信息的同步系统和方法
US20200267448A1 (en) Enhanced multicast network communications
CN102546463A (zh) 输出联系人对象突发天气信息的方法、客户端及系统
CN102427518B (zh) 按需组网视频会议系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20171215

Address after: 510000 Guangzhou City, Guangzhou, Guangdong, Fangcun Avenue, one of the 314 self compiled

Applicant after: Guangzhou Pinwei Software Co., Ltd.

Address before: 510370 Guangdong, Guangzhou, Fangcun, No., No. 20 Huahai street, building 1-5

Applicant before: Guangzhou VIPSHOP Information and Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220106

Address after: 510000 Room 601, 128 Dingxin Road, Haizhu District, Guangzhou City, Guangdong Province (office only)

Patentee after: Vipshop (Guangzhou) Software Co.,Ltd.

Address before: 510000 No. 314, Fangcun Avenue, Liwan District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU PINWEI SOFTWARE Co.,Ltd.