CN116893914A - 消息处理的方法、消息队列系统、客户端和电子设备 - Google Patents
消息处理的方法、消息队列系统、客户端和电子设备 Download PDFInfo
- Publication number
- CN116893914A CN116893914A CN202311162672.8A CN202311162672A CN116893914A CN 116893914 A CN116893914 A CN 116893914A CN 202311162672 A CN202311162672 A CN 202311162672A CN 116893914 A CN116893914 A CN 116893914A
- Authority
- CN
- China
- Prior art keywords
- component
- message
- consumed
- node
- available area
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 97
- 238000012545 processing Methods 0.000 claims description 64
- 230000001360 synchronised effect Effects 0.000 claims description 37
- 238000003860 storage Methods 0.000 claims description 13
- 238000010187 selection method Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 10
- 230000010076 replication Effects 0.000 abstract description 6
- 230000015572 biosynthetic process Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 19
- 238000004519 manufacturing process Methods 0.000 description 11
- 238000012790 confirmation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种消息处理的方法、消息队列系统、客户端和电子设备,该方法应用于第一目标组件的主节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:接收客户端发送的待消费消息;向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。本发明中,通过跨可用区的主从节点交叉部署,通过消息队列的主从复制机制保证每个可用区都存储同样的消息数据,防止单个可用区故障后无可用服务或形成单点。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种消息处理的方法、消息队列系统、客户端和电子设备。
背景技术
采用高可用系统架构支持重要系统,为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。通常采用分布式消息中间件RocketMQ 消息队列作为构建当前各种业务系统中的重要一环,不管采用的主从模式,还是采用的多副本模式,均能保证RocketMQ消息队列集群的高可用性,但在一些极端场景下,例如机房断电、机房火灾、地震等这些不可抗拒因素会导致系统所有服务器都故障从而导致整个的RocketMQ消息队列集群失效。因此,需要对RocketMQ消息队列集群进行多活架构容灾部署。
当前的双活架构的部署方案主要是部署的两套RocketMQ消息队列集群分摊业务流量,但两个可用区上的独立RocketMQ消息队列集群之间数据不同步,在某个可用区出现故障时可能造成一些数据的丢失;或者采用冷(热)备架构部署方案能够实时同步主备集群之间的数据,保证两个集群之间数据的一致性,但备集群在大多数时间中都处在无用状态,会造成资源利用率的下降,并且数据同步需要借助额外的同步工具,也会增加整个部署的复杂程度,增加运维成本。
发明内容
本发明实施例提供一种消息处理的方法、消息队列系统、客户端和电子设备,以解决现有的消息队列之间数据不同步,遇到可用区故障会造成数据损失的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种消息处理的方法,应用于第一目标组件的主节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
接收客户端发送的待消费消息;
向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
可选的,还包括:
接收客户端发送的待消费消息后,生成消息处理任务、消息同步任务和消息落盘任务,所述消息同步任务为将所述待消费消息向对应的所述至少一个从节点同步,所述消息落盘任务为将所述待消费消息写入对应的磁盘;执行消息处理任务时,异步执行所述消息同步任务和所述消息落盘任务。
第二方面,本发明实施例提供了一种消息处理的方法,应用于第一目标组件的从节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
接收部署在第一可用区或第二可用区的对应的第一目标组件的主节点同步的待消费消息。
第三方面,本发明实施例提供了一种消息处理的方法,应用于客户端,包括:
向第一目标组件的主节点发送待消费消息;所述第一目标组件是第一组件和第二组件其中一个,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中;所述第一目标组件的主节点将所述待消费消息同步至部署在第二可用区的至少一个从节点;其中,所述第一目标组件的主节点接收客户端发送的待消费消息;并向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
可选的,所述向第一目标组件的主节点发送待消费消息之前,还包括:
获取所述待消费消息对应的消息主题对应的队列;
获取预先存储的将所述待消费消息发送至对应的队列的历史延迟时间;
根据所述历史延迟时间选择延迟时间最小的队列对应的可用区进行优先投递;
若所述延迟时间相同,则采用轮询选择方法获取对应的可用区进行优先投递。
可选的,所述向第一目标组件的主节点发送待消费消息之前,还包括:
获取所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息;
根据所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息匹配对应的可用区进行优先投递。
第四方面,本发明实施例提供了一种消息队列系统,包括:
第一组件和第二组件;
所述第一组件包括:主节点和至少一个从节点,所述第二组件包括:主节点和至少一个从节点;
所述第一组件或第二组件的主节点,用于接收客户端发送的待消费消息,并向对应的至少一个从节点同步所述待消费消息;
所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中。
可选的,还包括:
第一注册中心和第二注册中心;
所述第一组件的主节点和至少一个从节点在所述第一注册中心注册,所述第二组件的主节点和至少一个从节点在所述第二注册中心注册;
所述第一注册中心部署在第一可用区中,所述第二注册中心部署在第二可用区中。
第五方面,本发明实施例提供了一种第一目标组件的主节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
第一接收模块,用于接收客户端发送的待消费消息;
同步模块,用于向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
可选的,还包括:
第一处理模块,用于接收客户端发送的待消费消息后,生成消息处理任务、消息同步任务和消息落盘任务,所述消息同步任务为将所述待消费消息向对应的所述至少一个从节点同步,所述消息落盘任务为将所述待消费消息写入对应的磁盘;执行消息处理任务时,异步执行所述消息同步任务和所述消息落盘任务。
第六方面,本发明实施例提供了一种第一目标组件的从节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
第二接收模块,用于接收部署在第一可用区或第二可用区的对应的第一目标组件的主节点同步的待消费消息。
第七方面,本发明实施例提供了一种客户端,包括:
发送模块,用于向第一目标组件的主节点发送待消费消息;所述第一目标组件是第一组件和第二组件其中一个,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中;所述第一目标组件的主节点将所述待消费消息同步至部署在第二可用区的至少一个从节点;其中,所述第一目标组件的主节点接收客户端发送的待消费消息;并向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
可选的,还包括:
第一获取模块,用于获取所述待消费消息对应的消息主题对应的队列;
第二获取模块,用于获取预先存储的将所述待消费消息发送至对应的队列的历史延迟时间;
第二处理模块,用于根据所述历史延迟时间选择延迟时间最小的队列对应的可用区进行优先投递;
第三处理模块,用于若所述延迟时间相同,则采用轮询选择方法获取对应的可用区进行优先投递。
可选的,还包括:
第三获取模块,用于获取所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息;
第四处理模块,用于根据所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息匹配对应的可用区进行优先投递。
第八方面,本发明实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的消息处理的方法中,或实现如第二方面中任一项所述的消息处理的方法中,或实现如第三方面中任一项所述的消息处理的方法中的步骤。
第九方面,本发明实施例提供了一种可读存储介质,其特征在于:所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的消息处理的方法中,或实现如第二方面中任一项所述的消息处理的方法中,或实现如第三方面中任一项所述的消息处理的方法中的步骤。
在本发明中,通过采用跨可用区主从交叉部署的方法组成一个消息队列集群,通过消息队列中组件的主从复制机制保证每个可用区都存储同样的消息数据,从而在单个可用区整体故障的情况,依然可以对外提供服务,同时部署多个组件来防止单个可用区故障后无可用服务或形成单点,解决了现有的消息队列之间数据不同步,遇到可用区故障会造成数据损失的问题。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种消息处理的方法应用于第一目标组件的主节点的流程图;
图2是本发明实施例提供的一种消息队列系统的结构示意图;
图3是本发明实施例提供的一种消息处理的方法的同步流程图;
图4是本发明实施例提供的一种消息处理的方法的异步任务执行流程图;
图5是本发明实施例提供的一种消息处理的方法应用于第一目标组件的从节点的流程图;
图6是本发明实施例提供的一种消息处理的方法应用于客户端的流程图;
图7是本发明实施例提供的一种消息处理的方法的最小投递延迟时间的流程图;
图8是本发明实施例提供的一种消息处理的方法的机房就近的队列分配的流程图;
图9是本发明实施例提供的一种双活架构的消息队列系统的结构示意图;
图10是本发明实施例提供的一种冷(热)备架构的消息队列系统的结构示意图;
图11是本发明实施例提供的一种第一目标组件的主节点的结构示意图;
图12是本发明实施例提供的一种第一目标组件的从节点的结构示意图;
图13是本发明实施例提供的一种客户端的结构示意图;
图14是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1和图2,本发明实施例提供了一种消息处理的方法,应用于第一目标组件的主节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
步骤11:接收客户端发送的待消费消息;
本发明实施例中,所述第一目标组件是如图2中消息队列系统中的第一组件和第二组件其中一个,所述消息队列系统为RocketMQ消息队列,所述RocketMQ消息队列引入Broker组件的主备机制,每个Broker组件都是master/slave主从结构,一个主节点可以对应多个从节点,但是一个从节点只能对应一个主节点,主节点与从节点的对应关系通过指定相同的组件名称,不同的组件身份标识来定义,主节点上的消息可以通过同步或者异步的方式复制到从节点上,同时从节点也会定时同步主节点上的元数据信息。
步骤12:向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
请参考图3,本发明实施例中,为了保证不同可用区上都有同样的全量元数据和消息数据,使用交叉部署将每个Broker组件的主节点和从节点部署在不同可用区上,利用主从节点之间的消息同步,对于消费消息的CommitLog通信日志也进行同步,在任何一个主节点出现宕机的情况下,对应的从节点都可以继续对外提供消息消费的能力。
本发明实施例中,通过采用跨可用区主从交叉部署的方法组成一个消息队列集群,通过消息队列中组件的主从复制机制保证每个可用区都存储同样的消息数据,从而在单个可用区整体故障的情况,依然可以对外提供服务,同时部署多个组件来防止单个可用区故障后无可用服务或形成单点,解决了现有的消息队列之间数据不同步,遇到可用区故障会造成数据损失的问题。
本发明实施例中,可选的,还包括:
将所述待消费消息写入磁盘并生成第一写入磁盘成功指示;
获取对应的所述至少一个从节点发送的第二写入磁成功指示;
根据所述第一写入磁盘成功指示和所述第二写入磁盘成功指示向所述客户端发送确认字符数据。
本发明实施例中,在所述消息队列系统进行消息同步时,采用同步双写模式,只有消息在所述第一目标组件不同可用区上的主节点和从节点都写入磁盘成功后才会向客户端返回ack成功状态确认字符,主节点和从节点的消息数据保证强一致,不会因为某个可用区上的机器宕机造成消息丢失,提高了服务可用性和数据可用性。
本发明实施例中,可选的,还包括:
接收客户端发送的待消费消息后,生成消息处理任务、消息同步任务和消息落盘任务,所述消息同步任务为将所述待消费消息向对应的所述至少一个从节点同步,所述消息落盘任务为将所述待消费消息写入对应的磁盘;执行消息处理任务时,异步执行所述消息同步任务和所述消息落盘任务。
请参考图4,本发明实施例中,采用了一种任务划分异步处理的机制,即将每个消息处理的过程分成多个异步任务,如负责消息处理任务,负责消息同步任务,负责消息落盘任务;
消息处理任务接受到生产客户端发送的一条目标消息,并进行校验、解析等预处理后,可以立马处理新的消息请求,将目标消息比较耗时的同步和落盘操作交给异步的消息同步任务和消息落盘任务执行,消息同步任务和消息落盘任务异步执行完成后合并执行结果再通知消息处理任务向客户端返回ack确认字符给生产客户端;这样生产客户端发送的消息到达主节点后,消息处理任务线程不再等待消息复制到从节点后再处理新请求,而是生成两个异步任务去执行同步和落盘任务,并马上处理新的消息请求。Ack确认字符再由其他任务完成之后再进行结果处理并返回给客户端,通过对复制过程进行切分并将其流水线化,减少线程的长时间等待,从而大幅提高同步性能。
本发明实施例中,可选的,还包括:
当所述第一目标组件对应的主节点的可用区不可用时,则通过所述第二目标组件对应的可用区的主节点接收客户端发送的待消费消息;所述第二目标组件对应的可用区的所述主节点将所述待消费消息同步至部署在所述第一目标组件对应的可用区的所述至少一个从节点;
若所述第一目标组件对应部署的可用区中主节点有未消费完成的待消费消息,则通过所述第二目标组件对应的可用区中的所述至少一个从节点进行处理。
本发明实施例中,在执行业务过程中,当某个可用区不可用时,客户端会连接到另一个可用区的注册中心,获取Broker组件的路由信息,此时客户端会自动剔除故障的Broker组件节点,消息会转向另一个可用区的Broker组件的主节点发送,如果不可用的可用区中Broker组件的主节点还有消息未消费,则会转向可用的可用区对应的从节点上进行消费。
请参考表1为所述消息处理的方法在各种异常情景下的RocketMQ消息队列集群的服务情况。
表1
本发明实施例中,所述消息处理的方法可以应用在移动云的多种产品中,如云主机、云存储和云网络等,通过采用跨可用区主从交叉部署的方法保证每个可用区都存储同样的消息数据,从而在单个可用区整体故障的情况,依然可以对外提供服务,防止单个可用区故障后无可用服务或形成单点,保证服务质量和服务效率。
请参考图5,本发明实施例提供了一种消息处理的方法,应用于第一目标组件的从节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
步骤51:接收部署在第一可用区或第二可用区的对应的第一目标组件的主节点同步的待消费消息。
请参考图2,本发明实施例中,所述第一目标组件是如图2中消息队列系统中的第一组件和第二组件其中一个,所述消息队列系统为RocketMQ消息队列,所述RocketMQ消息队列引入Broker组件的主备机制,每个Broker组件都是master/slave主从结构,一个主节点可以对应多个从节点,但是一个从节点只能对应一个主节点,主节点与从节点的对应关系通过指定相同的组件名称,不同的组件身份标识来定义,主节点上的消息可以通过同步或者异步的方式复制到从节点上,同时从节点也会定时同步主节点上的元数据信息。
请参考图3,本发明实施例中,为了保证不同可用区上都有同样的全量元数据和消息数据,使用交叉部署将每个Broker组件的主节点和从节点部署在不同可用区上,利用主从节点之间的消息同步,对于消费消息的CommitLog通信日志也进行同步,在任何一个主节点出现宕机的情况下,对应的从节点都可以继续对外提供消息消费的能力。
本发明实施例中,通过采用跨可用区主从交叉部署的方法组成一个消息队列集群,通过消息队列中组件的主从复制机制保证每个可用区都存储同样的消息数据,从而在单个可用区整体故障的情况,依然可以对外提供服务,同时部署多个组件来防止单个可用区故障后无可用服务或形成单点,解决了现有的消息队列之间数据不同步,遇到可用区故障会造成数据损失的问题。
本发明实施例中,可选的,还包括:
当接收第一目标组件的主节点同步的所述待消费消息完成时,生成第二写入磁盘成功指示;
向所述第一目标组件的主节点发送所述第二写入磁盘成功指示。
本发明实施例中,在所述消息队列进行消息同步时,采用同步双写模式,只有消息在所述第一目标组件不同可用区上的主节点和从节点都写入磁盘成功后才会向客户端返回ack成功状态确认字符,主节点和从节点的消息数据保证强一致,不会因为某个可用区上的机器宕机造成消息丢失,提高了服务可用性和数据可用性。
本发明实施例中,可选的,还包括:
当所述第一目标组件对应的可用区不可用,且所述第一目标组件对应的可用区中有未消费完成的待消费消息,则对所述未消费完成的待消费消息进行处理。
请参考图4,本发明实施例中,采用了一种任务划分异步处理的机制,即将每个消息处理的过程分成多个异步任务,如负责消息处理任务,负责消息同步任务,负责消息落盘任务;
消息处理任务接受到生产客户端发送的一条目标消息,并进行校验、解析等预处理后,可以立马处理新的消息请求,将目标消息比较耗时的同步和落盘操作交给异步的消息同步任务和消息落盘任务执行,消息同步任务和消息落盘任务异步执行完成后合并执行结果再通知消息处理任务向客户端返回ack确认字符给生产客户端;这样生产客户端发送的消息到达主节点后,消息处理任务线程不再等待消息复制到从节点后再处理新请求,而是生成两个异步任务去执行同步和落盘任务,并马上处理新的消息请求。Ack确认字符再由其他任务完成之后再进行结果处理并返回给客户端,通过对复制过程进行切分并将其流水线化,减少线程的长时间等待,从而大幅提高同步性能。
请参考图6,本发明实施例提供了一种消息处理的方法,应用于客户端,包括:
步骤61:向第一目标组件的主节点发送待消费消息;所述第一目标组件是第一组件和第二组件其中一个,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中;所述第一目标组件的主节点将所述待消费消息同步至部署在第二可用区的至少一个从节点;其中,所述第一目标组件的主节点接收客户端发送的待消费消息;并向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
本发明实施例中,所述客户端分为生产端和消费端,所述客户端同时连接两个可用区的注册中心,并定时查询topic消息主题的路由信息,若发现某个可用区上的注册中心挂掉,客户端会自动连接下一个注册中心,直到有可用连接为止,其中,为了实现就近的生产和消费,客户端优先进行本地消息读写,生产端发送消息时,使用最小延迟算法将消息投递到时间延迟最小的队列,消费消息时,使用就近机房消费策略对消息队列进行分配。
本发明实施例中,可选的,还包括:
接收所述第一目标组件的主节点发送的确认字符数据。
本发明实施例中,在所述消息队列进行消息同步时,采用同步双写模式,只有消息在所述第一目标组件不同可用区上的主节点和从节点都写入磁盘成功后才会向客户端返回ack成功状态确认字符,主节点和从节点的消息数据保证强一致,不会因为某个可用区上的机器宕机造成消息丢失,提高了服务可用性和数据可用性。
本发明实施例中,可选的,还包括:
当所述第一目标组件的主节点对应的可用区不可用时,则连接所述第二目标组件的主节点对应的可用区的第二注册中心;
根据所述第二注册中心提供的路由地址,向所述第二目标组件对应的可用区的主节点发送待消费消息。
本发明实施例中,在执行业务过程中,当某个可用区不可用时,客户端会连接到另一个可用区的注册中心,获取Broker组件的路由信息,此时客户端会自动剔除故障的Broker组件节点,消息会转向另一个可用区的Broker组件的主节点发送,如果不可用的可用区中Broker组件的主节点还有消息未消费,则会转向可用的可用区对应的从节点上进行消费,通过采用跨可用区主从交叉部署的方法保证每个可用区都存储同样的消息数据,从而在单个可用区整体故障的情况,依然可以对外提供服务,防止单个可用区故障后无可用服务或形成单点,保证服务质量和服务效率。
本发明实施例中,可选的所述向第一目标组件的主节点发送待消费消息之前,还包括:
获取所述待消费消息对应的消息主题对应的队列;
获取预先存储的将所述待消费消息发送至对应的队列的历史延迟时间;
根据所述历史延迟时间选择延迟时间最小的队列对应的可用区进行优先投递;
若所述延迟时间相同,则采用轮询选择方法获取对应的可用区进行优先投递。
请参考图7,本发明实施例中,为了消息发送的高可用,新创建的消息主题topic在消息队列集群中的每台Broker组件上创建对应的queue队列,避免Broker组件的单节点故障,基于优先本地可用区就近生产的原则,每次投递消息后,会计算并记录本次消息投递到队列的延迟时间,等到投递下条消息时,查询消息主题topic路由,获取消息主题topic所有queue队列信息;并优先选择一个投递延迟时间最小的队列进行消息投递;若出现多个延迟时间最小的队列,则采用轮询算法投递;发送消息后,记录此次queue队列的发送延迟;同一个可用区中的网络通信时延会低于跨可用区的网络通信时延,因此采用最小投递延迟时间的消息投递方式能够保证消息的就近生产。
本发明实施例中,可选的,所述向第一目标组件的主节点发送待消费消息之前,还包括:
获取所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息;
根据所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息匹配对应的可用区进行优先投递。
请参考图8,本发明实施例中,消费客户端在拉取消息之前需要对topic消息主题的所有queue队列进行负载分配,默认使用平均负载策略,即所有queue队列会平均分配给消费集群的消费者,该分配策略会出现跨可用区分配queue队列的情况,导致消费延迟较大,本发明实施例中采用了基于机房就近的队列分配策略,即根据queue队列的部署可用区的机房位置和消费者的位置,过滤出当前消费者相同机房的queue队列,然后再结合平均分配算法在queue队列中优先将可用区中的queue队列分给同可用区的消费者,具体步骤如下:
Broke部署时,在每个可用区上的Broker组件名称上增加该可用区的机房标识roomMark;
队列queue分配时,优先实现本地分配,即解析消费客户端的IP地址;
判断是否属于某个可用区;
若属于某个可用区,则将相应可用区上的queue队列按照平均分配策略分配给消费客户端;
若消费客户端不属于任何一个可用,则按照消费者携带的可用区的机房标识与Broker组件名称中的机房标识roomMark进行匹配来分配queue队列;
若消费者中未携带可用区的机房标识或匹配未成功,则将两个可用区上所有的queue队列按平均分配策略分配给消费客户端;
若存在queue队列的某个机房中,没有和queue队列同机房的消费客户端,则将这些queue队列按平均分配策略分配给集群中所有的消费客户端。
本发明实施例中,基于机房就近的队列分配优先基于IP地址分配,如果某个配置修改无需重启服务,自动触发负载重新分配,灵活性更高;同时对于一方可用区出现故障,消费客户端也会自动转移到另一个可用区上进行队列分配,避免了队列上消息无法消费造成堆积的情况。
本发明实施例中,所述消息处理的方法可以应用在移动云的多种产品中,如云主机、云存储和云网络等,通过采用跨可用区主从交叉部署的方法保证每个可用区都存储同样的消息数据,从而在单个可用区整体故障的情况,依然可以对外提供服务,防止单个可用区故障后无可用服务或形成单点,保证服务质量和服务效率。
请参考图2,本发明实施例提供了一种消息队列系统,包括:
第一组件和第二组件;
所述第一组件包括:主节点和至少一个从节点,所述第二组件包括:主节点和至少一个从节点;
所述第一组件或第二组件的主节点,用于接收客户端发送的待消费消息,并向对应的至少一个从节点同步所述待消费消息;
所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中。
本发明实施例中,所述消息队列系统为RocketMQ消息队列系统,因为分布式消息中间件RocketMQ 消息队列作为构建当前各种业务系统(如:订单系统、支付系统、交易系统等)中的重要一环,其具有稳定可靠、高可用的性能,不管采用master/slave的主从模式,或采用Dledger的多副本模式,均能保证RocketMQ消息队列集群的高可用性,并且通过RocketMQ消息队列自身组件Broker的主从复制机制保证每个可用区都能存储同样的消息数据。
请参考图9,现有技术中的双活架构即在每个可用区上分别部署一个独立的RocketMQ消息队列集群,两个RocketMQ消息队列集群同时对外提供服务,集群之间数据互不同步,当某个可用区上的RocketMQ消息队列集群出现问题时,将业务请求全部切到另一个可用区,消息也会生产到另一个机房。
虽然双活架构的部署方案能够有效的分摊业务流量,提高整体RocketMQ消息队列集群的性能,但两个可用区上的独立RocketMQ消息队列集群之间数据不同步,在某个可用区出现故障时可能造成一些数据的丢失,如第一可用区故障后,业务切换到第二可用区上继续进行运行,但第一可用区上还未来得及消费的消息无法同步到第二可用区上,就会导致这部分消息的丢失;并且在某个可用区上连接到两个RocketMQ消息队列集群的生产者或消费者业务会轮询所有可用区上的队列进行消息投递和消费,接近一半消息需要跨可用区去进行投递和消费,而跨可用区通信的带宽和时延会对性能造成一定影响。
请参考图10,现有技术中的冷(热)备架构,在每个可用区上分别部署一个独立的RocketMQ消息队列集群,其中一个作为备集群不对外提供服务,业务请求到主集群,主集群会启动消息同步工具replicator将数据实时同步到备集群,当主集群的可用区出现故障后,备集群继续对外提供服务。
虽然冷(热)备架构部署方案能够实时同步主备集群之间的数据,保证两个集群之间数据的一致性,主集群发生故障时,备集群能够直接替代,不会造成消息的丢失,但备集群在大多数时间中都处在无用状态,会造成资源利用率的下降,其次两个集群之间的数据同步需要借助额外的同步工具,也会增加整个部署的复杂程度,增加运维成本。
本发明实施例中,通过采用跨可用区主从交叉部署的方法组成一个消息队列集群,通过消息队列中组件的主从复制机制保证每个可用区都存储同样的消息数据,从而在单个可用区整体故障的情况,依然可以对外提供服务,同时部署多个组件来防止单个可用区故障后无可用服务或形成单点,解决了现有的消息队列之间数据不同步,遇到可用区故障会造成数据损失的问题。
本发明实施例中,可选的,还包括:
第一注册中心和第二注册中心;
所述第一组件的主节点和至少一个从节点在所述第一注册中心注册,所述第二组件的主节点和至少一个从节点在所述第二注册中心注册;
所述第一注册中心部署在第一可用区中,所述第二注册中心部署在第二可用区中。
本发明实施例中,两个可用区上的第一组件和第二组件的主从节点通过交叉部署组成一个RocketMQ消息队列集群,每个可用区上的生产和消费客户端都同时连接到这个RocketMQ消息队列集群上。
其中,第一注册中心和第二注册中心部署在每个可用区上对外提供服务,两个可用区上所有的Broker组件的节点都注册到注册中心上,保证注册中心上包含所有Broker组件的路由信息,所述第一注册中心和所述第二注册中心互相独立,彼此没有通信关系,单台注册中心挂掉,不影响其他注册中心的使用,当一个可用区的注册中心服务宕机后,另一个可用区上的注册中心可可以继续提供服务。
第一组件Broker-a和第二组件Broker-b均采用master/slave主从同步双写部署模式,每组组件Broker在两个可用区上交叉部署(所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二注册中心、所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中),消息发送到某个可用区的主节点后会实时同步到另一个可用区上的对应的从节点;所述RocketMQ消息队列集群部署2个Broker组件,保证每一个可用区均有一个Broker组件的主节点可以对外提供消息的读写能力。
请参考图11,本发明实施例提供了一种第一目标组件的主节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
第一接收模块111,用于接收客户端发送的待消费消息;
同步模块112,用于向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
本发明实施例中,可选的,还包括:
第一处理模块,用于接收客户端发送的待消费消息后,生成消息处理任务、消息同步任务和消息落盘任务,所述消息同步任务为将所述待消费消息向对应的所述至少一个从节点同步,所述消息落盘任务为将所述待消费消息写入对应的磁盘;执行消息处理任务时,异步执行所述消息同步任务和所述消息落盘任务。
本发明实施例提供的第一目标组件的主节点能够实现图1的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
请参考图12,本发明实施例提供了一种第一目标组件的从节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
第二接收模块121,用于接收部署在第一可用区或第二可用区的对应的第一目标组件的主节点同步的待消费消息。
本发明实施例提供的第一目标组件的从节点能够实现图5的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
请参考图13,本发明实施例提供了一种客户端,包括:
发送模块131,用于向第一目标组件的主节点发送待消费消息;所述第一目标组件是第一组件和第二组件其中一个,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中;所述第一目标组件的主节点将所述待消费消息同步至部署在第二可用区的至少一个从节点;其中,所述第一目标组件的主节点接收客户端发送的待消费消息;并向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
本发明实施例中,可选的,还包括:
第一获取模块,用于获取所述待消费消息对应的消息主题在所述消息队列系统中的每个组件中对应的队列;
第二获取模块,用于获取预先存储的将所述待消费消息发送至所述每个组件中对应的队列的历史延迟时间;
第二处理模块,用于根据所述历史延迟时间选择延迟时间最小的队列对应的可用区进行优先投递;
第三处理模块,用于若所述延迟时间相同,则采用轮询选择方法获取对应的可用区进行优先投递。
本发明实施例中,可选的,还包括:
第三获取模块,用于获取所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息;
第四处理模块,用于根据所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息匹配对应的可用区进行优先投递。
本发明实施例提供的客户端能够实现图6的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供了一种电子设备140,参见图14所示,图14为本发明实施例电子设备140的原理框图,包括处理器141,存储器142及存储在存储器142上并可在处理器141上运行的程序或指令,程序或指令被处理器执行时实现本发明的任一项消息处理的方法中的步骤。
本发明实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的消息处理的方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台服务分类设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (13)
1.一种消息处理的方法,其特征在于,应用于第一目标组件的主节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
接收客户端发送的待消费消息;
向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
2.根据权利要求1所述的消息处理的方法,其特征在于,还包括:
接收客户端发送的待消费消息后,生成消息处理任务、消息同步任务和消息落盘任务,所述消息同步任务为将所述待消费消息向对应的所述至少一个从节点同步,所述消息落盘任务为将所述待消费消息写入对应的磁盘;执行消息处理任务时,异步执行所述消息同步任务和所述消息落盘任务。
3.一种消息处理的方法,其特征在于,应用于第一目标组件的从节点,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
接收部署在第一可用区或第二可用区的对应的第一目标组件的主节点同步的待消费消息。
4.一种消息处理的方法,其特征在于,应用于客户端,包括:
向第一目标组件的主节点发送待消费消息;所述第一目标组件是第一组件和第二组件其中一个,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中;所述第一目标组件的主节点将所述待消费消息同步至部署在第二可用区的至少一个从节点;其中,所述第一目标组件的主节点接收客户端发送的待消费消息;并向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
5.根据权利要求4所述的消息处理的方法,其特征在于,所述向第一目标组件的主节点发送待消费消息之前,还包括:
获取所述待消费消息对应的消息主题对应的队列;
获取预先存储的将所述待消费消息发送至对应的队列的历史延迟时间;
根据所述历史延迟时间选择延迟时间最小的队列对应的可用区进行优先投递;
若所述延迟时间相同,则采用轮询选择方法获取对应的可用区进行优先投递。
6.根据权利要求4所述的消息处理的方法,其特征在于,所述向第一目标组件的主节点发送待消费消息之前,还包括:
获取所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息;
根据所述客户端对应的地址信息和所述第一可用区和所述第二可用区的地址信息匹配对应的可用区进行优先投递。
7.一种消息队列系统,其特征在于,包括:
第一组件和第二组件;
所述第一组件包括:主节点和至少一个从节点,所述第二组件包括:主节点和至少一个从节点;
所述第一组件或第二组件的主节点,用于接收客户端发送的待消费消息,并向对应的至少一个从节点同步所述待消费消息;
所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中。
8.根据权利要求7所述的消息队列系统,其特征在于,还包括:
第一注册中心和第二注册中心;
所述第一组件的主节点和至少一个从节点在所述第一注册中心注册,所述第二组件的主节点和至少一个从节点在所述第二注册中心注册;
所述第一注册中心部署在第一可用区中,所述第二注册中心部署在第二可用区中。
9.一种第一目标组件的主节点,其特征在于,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
第一接收模块,用于接收客户端发送的待消费消息;
同步模块,用于向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
10.一种第一目标组件的从节点,其特征在于,所述第一目标组件为第一组件或第二组件,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中,包括:
第二接收模块,用于接收部署在第一可用区或第二可用区的对应的第一目标组件的主节点同步的待消费消息。
11.一种客户端,其特征在于,包括:
发送模块,用于向第一目标组件的主节点发送待消费消息;所述第一目标组件是第一组件和第二组件其中一个,所述第一组件的主节点和所述第二组件的至少一个从节点部署在第一可用区中,所述第二组件的主节点和所述第一组件的至少一个从节点部署在第二可用区中;所述第一目标组件的主节点将所述待消费消息同步至部署在第二可用区的至少一个从节点;其中,所述第一目标组件的主节点接收客户端发送的待消费消息;并向部署在第一可用区或第二可用区的对应的至少一个从节点同步所述待消费消息。
12.一种电子设备,其特征在于:包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1或2中任一项所述的消息处理的方法中,或实现如权利要求3中任一项所述的消息处理的方法中,或实现如权利要求4至6中任一项所述的消息处理的方法中的步骤。
13.一种可读存储介质,其特征在于:所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1或2中任一项所述的消息处理的方法中,或实现如权利要求3中任一项所述的消息处理的方法中,或实现如权利要求4至6中任一项所述的消息处理的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311162672.8A CN116893914A (zh) | 2023-09-11 | 2023-09-11 | 消息处理的方法、消息队列系统、客户端和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311162672.8A CN116893914A (zh) | 2023-09-11 | 2023-09-11 | 消息处理的方法、消息队列系统、客户端和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116893914A true CN116893914A (zh) | 2023-10-17 |
Family
ID=88309747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311162672.8A Pending CN116893914A (zh) | 2023-09-11 | 2023-09-11 | 消息处理的方法、消息队列系统、客户端和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116893914A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598762A (zh) * | 2016-12-29 | 2017-04-26 | 上海理想信息产业(集团)有限公司 | 一种消息同步方法及系统 |
CN107315641A (zh) * | 2017-05-27 | 2017-11-03 | 杭州铭师堂教育科技发展有限公司 | 基于Qconf的消息队列高可用系统及方法 |
CN110601903A (zh) * | 2019-09-25 | 2019-12-20 | 广州荔支网络技术有限公司 | 一种基于消息队列中间件的数据处理方法及装置 |
CN112527520A (zh) * | 2020-12-01 | 2021-03-19 | 中国建设银行股份有限公司 | 一种部署消息中间件的方法和装置 |
CN113641511A (zh) * | 2021-07-09 | 2021-11-12 | 阿里云计算有限公司 | 一种消息通信方法和装置 |
-
2023
- 2023-09-11 CN CN202311162672.8A patent/CN116893914A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598762A (zh) * | 2016-12-29 | 2017-04-26 | 上海理想信息产业(集团)有限公司 | 一种消息同步方法及系统 |
CN107315641A (zh) * | 2017-05-27 | 2017-11-03 | 杭州铭师堂教育科技发展有限公司 | 基于Qconf的消息队列高可用系统及方法 |
CN110601903A (zh) * | 2019-09-25 | 2019-12-20 | 广州荔支网络技术有限公司 | 一种基于消息队列中间件的数据处理方法及装置 |
CN112527520A (zh) * | 2020-12-01 | 2021-03-19 | 中国建设银行股份有限公司 | 一种部署消息中间件的方法和装置 |
CN113641511A (zh) * | 2021-07-09 | 2021-11-12 | 阿里云计算有限公司 | 一种消息通信方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10581674B2 (en) | Method and apparatus for expanding high-availability server cluster | |
CN110601903B (zh) | 一种基于消息队列中间件的数据处理方法及装置 | |
CN101751415B (zh) | 元数据服务系统、元数据同步方法与写服务器更新方法 | |
WO2023280127A1 (zh) | 一种消息通信方法和装置 | |
CN102088490B (zh) | 数据存储方法、设备和系统 | |
CN102143194A (zh) | 数据同步的方法、系统、中间数据节点及终止数据节点 | |
CN112202853B (zh) | 数据同步方法、系统、计算机设备和存储介质 | |
CN114363407A (zh) | 消息服务方法及装置、可读存储介质及电子设备 | |
US8832215B2 (en) | Load-balancing in replication engine of directory server | |
CN112804332B (zh) | 消息处理系统、方法、装置、设备及计算机可读存储介质 | |
US10802896B2 (en) | Rest gateway for messaging | |
CN104780190A (zh) | 数据读写控制方法及装置 | |
CN116962498A (zh) | 一种基于分布式架构的服务拆分方法 | |
CN111163172A (zh) | 消息处理系统、方法、电子设备及存储介质 | |
CN111475537B (zh) | 基于pulsar的全球数据同步系统 | |
CN111459416B (zh) | 一种基于分布式存储的热迁移系统及其迁移方法 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
CN116893914A (zh) | 消息处理的方法、消息队列系统、客户端和电子设备 | |
CN111797352A (zh) | 封禁帐号的方法、装置及封禁系统 | |
CN114900449B (zh) | 一种资源信息管理方法、系统及装置 | |
CN114398203A (zh) | 云灾备系统、方法、电子设备及存储介质 | |
CN111629111B (zh) | 一种呼叫管理的系统及方法 | |
CN111083182B (zh) | 分布式物联网设备管理方法及装置 | |
CN113630317A (zh) | 一种数据传输方法、装置、非易失性存储介质及电子装置 | |
CN115086153B (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 |