CN107092533A - 基于ActiveMQ+Redis的同步消息队列 - Google Patents
基于ActiveMQ+Redis的同步消息队列 Download PDFInfo
- Publication number
- CN107092533A CN107092533A CN201710198762.0A CN201710198762A CN107092533A CN 107092533 A CN107092533 A CN 107092533A CN 201710198762 A CN201710198762 A CN 201710198762A CN 107092533 A CN107092533 A CN 107092533A
- Authority
- CN
- China
- Prior art keywords
- message
- redis
- consumer
- active
- consumption
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于Active MQ+Redis的同步消息队列,步骤包括:创建Active MQ消息队列的连接和对话;向Active MQ消息队列插入消息;消费者接收到消息,Redis的list数据结构记录消息的先后顺序;Redis按照消息先后顺序向消费者发送分布式锁;获取到分布式锁的消费者成为领导者,消费消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取分布式锁。本发明的有益效果是:解决了多消费者并行消费分布式消息队列消息容易出现程序故障的问题,实现了多个消费者之间的顺序消费,填补了Active MQ+Redis同步消息队列这一技术空白。
Description
技术领域
本发明属于同步消息队列执行技术领域,具体涉及一种基于ActiveMQ+Redis的同步消息队列。
背景技术
消息队列在只有一个消费者的情况下,假如该消费者的机器发生故障,则无法完成对消息的完全消费,此时,如果要继续消费消息,则需要切换到其他机器进行操作,即在系统中设置多个消费者终端;而多个消费者消费消息又存在需要顺序执行的问题,在多消费者并行消费分布式消息队列消息的场景中,怎样保持多个消费者之间的顺序消费,是一个亟待解决的重要问题。
在实际业务场景中,例如:有多个教师同时导入学生信息,按照学生人数实时扣费的场景中,导入的逻辑顺序是先获取剩余费用信息并进行判断,剩余费用充足则将学生信息导入,剩余费用不足则禁止导入。以2位教师执行操作导入100名学生信息为例,假如剩余费用等于100名学生的加总费用,在并行执行时,2位教师获取到的剩余费用信息都是充足的,都会执行导入学生信息的操作,这样就有可能导致剩余费用透支的情况发生。
Active MQ是目前最流行的一种消息总线,Redis是一款内存可持久化的日志型key-value数据库,目前还没有成熟的结合了Active MQ和Redis的同步消息队列解决方案。
发明内容
为解决多消费者并行消费分布式消息队列消息容易出现程序故障的问题,实现多个消费者之间的顺序消费,填补Active MQ+Redis同步消息队列这一技术空白,本发明的目的在于提供一种基于Active MQ+Redis的同步消息队列。
本发明是通过以下技术方案来实现的:基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向上述Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入上述Active MQ消息队列的先后顺序;
S4. 上述Redis按照消息进入上述Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由上述Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给上述Redis后,上述Redis继续发送新的分布式锁。
本发明优选地,上述消息有且只有一次被消费者消费。
本发明优选地,上述Redis为单线程。
本发明优选地,上述Redis的list数据结构为双向队列数据结构。
本发明优选地,上述Redis中预设有消息消费时限;在步骤S5中,当消费者成为领导者时,上述Redis自动存储开始消费消息的时间,当领导者实际消费时间大于预设消费时限时,上述Redis自动删除领导者持有的分布式锁并重新向持有消息的消费者发送分布式锁。
本发明优选地,消费者消费过程中因断电或重启导致消费中断时,正在被消费的消息被上述Redis从上述Active MQ消息队列中取出并保存,消费者重启后,上述Redis将保存的消息重新加载到上述Active MQ消息队列中供消费者继续消费,直到消费完成后上述Redis删除保存的消息。
Active MQ是目前最流行的一款消息总线,成熟、稳定,并且对跨平台支持较好;Redis是目前最流行的一款内存可持久化的日志型key-value数据库,具有性能高效、成熟稳定、简单易用、数据结构丰富等特点。
Active MQ提供了消息队列的功能,Redis提供了双向队列的数据结构。消息队列存在两种消费模型:消息队列模型和发布/订阅模型,本发明是针对消息队列模型进行改进。
在现有技术中,存在3种解决方案:其一,将多消费者改为单消费者,此种情形下,一旦消费者机器发生故障,则无法切换机器,消费者无法成功消费消息;其二,通过数据库加锁和索引,将批量插入改为单条插入,这种方案会导致整个系统性能低下;其三,在数据库中设置全局状态,此时,频繁的执行操作会增加数据库压力。这些方案都会导致系统性能低下,逻辑复杂度增加,只能根据实际业务定制相应方案,无法实现通用。
本发明在高可用部署模式下结合Active MQ和Redis创建同步消息队列,通过向消费者发送消息和分布式锁,实现了多个消费者的顺序消费,避免了系统混乱和消费者消费冲突的情况发生。
本发明提供的Active MQ+Redis的同步消息队列提供了异步的通信协议,可以使通信参与者在空间和时间上解耦。消息的生产者和消费者无需直接通信,消息被发送到一个队列进行保存,直到消费者从这个队列中取走消息,每一条消息只会被一个消费者消费,即一条消息有且只有一次被消费者消费。
现有的消息队列模式在高可用场景部署中,存在多个消费者的情况下,不能保证消息是按照消息队列中的次序顺序消费的,只能够保证各消费者按照消息队列中的次序获取消息。在高并发的环境下,后取到消息的消费者有可能比先取到消息的消费者先执行入库操作。本发明为了保证消费者按照消息进入队列的顺序执行消费,提供了分布式的锁机制,并且记录消息在消息队列中的先后位置。Redis具有list并且是单线程的,能够做到数据先进先出,可以解决多个消费者在高并发下选取领导者的问题。
消费者获取到消息后,先把消息存储到Redis的list数据结构中,用来记录消息原来进入消息队列的先后顺序,然后消费者获取Redis的一个分布式锁,这是存在两种情况:成功获取到锁和获取锁失败。成功获取到锁即成为消费者的领导者,负责处理Redis队列中的消息,未获取到锁的消费者继续等待接收下一个分布式锁。领导者处理完消息后释放Redis锁。下次再有消息时继续此流程。
假如领导者获取到锁后发生线程中断的情况,没有及时释放掉锁,这是可能会造成死锁,为解决这一问题,本发明在Redis中预设有消息消费时限,领导者在处理每个消息时都需要在Redis中存储一个开始处理任务的时间,其他消费者在未获取到锁的时候会检测领导者处理任务的时间,如果领导者处理任务超过预设的消费时限,则Redis会删除领导者的锁,其他消费者重新获取锁。
消息消费中途如果出现重启或断电时,正在执行的消息在Redis队列取出并保存,直到消费完成才会将该消息删除。消费者成功重启后,Redis将保存的这条消息重新加载到消息队列中供消费者处理。这样,无论是一个消费者因故障重启或整个集群因故障重启,都可以保证消息队列中消息的顺序处理。
本发明至少能够达到一项以下有益效果:
1.解决了多消费者并行消费分布式消息队列消息容易出现程序故障的问题,实现了多个消费者之间的顺序消费,填补了Active MQ+Redis同步消息队列这一技术空白;
2.系统稳定,性能优良,简单易用,具有丰富的数据结构,支持跨平台操作。
具体实施方式
下面结合具体的实施例对本发明做进一步的解释说明。
实施例1
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
消息有且只有一次被消费者消费。
Redis为单线程。
Redis的list数据结构为双向队列数据结构。
Redis中预设有消息消费时限;在步骤S5中,当消费者成为领导者时,Redis自动存储开始消费消息的时间,当领导者实际消费时间大于预设消费时限时,Redis自动删除领导者持有的分布式锁并重新向持有消息的消费者发送分布式锁。
消费者消费过程中因断电或重启导致消费中断时,正在被消费的消息被Redis从Active MQ消息队列中取出并保存,消费者重启后,Redis将保存的消息重新加载到ActiveMQ消息队列中供消费者继续消费,直到消费完成后Redis删除保存的消息。
实施例2
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
消息有且只有一次被消费者消费。
Redis为单线程。
Redis的list数据结构为双向队列数据结构。
Redis中预设有消息消费时限;在步骤S5中,当消费者成为领导者时,Redis自动存储开始消费消息的时间,当领导者实际消费时间大于预设消费时限时,Redis自动删除领导者持有的分布式锁并重新向持有消息的消费者发送分布式锁。
实施例3
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
消息有且只有一次被消费者消费。
Redis为单线程。
Redis的list数据结构为双向队列数据结构。
实施例4
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
消息有且只有一次被消费者消费。
Redis为单线程。
实施例5
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
消息有且只有一次被消费者消费。
实施例6
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
实施例7
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
Redis为单线程。
实施例8
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
Redis的list数据结构为双向队列数据结构。
实施例9
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
Redis中预设有消息消费时限;在步骤S5中,当消费者成为领导者时,Redis自动存储开始消费消息的时间,当领导者实际消费时间大于预设消费时限时,Redis自动删除领导者持有的分布式锁并重新向持有消息的消费者发送分布式锁。
实施例10
基于Active MQ+Redis的同步消息队列,步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入Active MQ消息队列的先后顺序;
S4. Redis按照消息进入Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给Redis后, Redis继续发送新的分布式锁。
消费者消费过程中因断电或重启导致消费中断时,正在被消费的消息被Redis从Active MQ消息队列中取出并保存,消费者重启后,Redis将保存的消息重新加载到ActiveMQ消息队列中供消费者继续消费,直到消费完成后Redis删除保存的消息。
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进均应视为落入要求保护的本发明范围内。
Claims (6)
1.基于Active MQ+Redis的同步消息队列,其特征在于:步骤包括:
S1. 创建Active MQ消息队列的连接和对话;
S2. 向所述Active MQ消息队列插入消息,由消费者监听消息;
S3. 消费者接收到消息,被消费者接收到的消息反馈并存储到Redis的list数据结构中,用于记录消息进入所述Active MQ消息队列的先后顺序;
S4. 所述Redis按照消息进入所述Active MQ消息队列的先后顺序向持有消息的消费者发送分布式锁;
S5. 获取到分布式锁的消费者成为领导者,消费其持有的消息,消费完成后释放分布式锁,继续监听消息;未获取到分布式锁的消费者继续等待获取由所述Redis发送的新的分布式锁;
S6. 领导者释放分布式锁的动作反馈给所述Redis后,所述Redis继续发送新的分布式锁。
2.根据权利要求1所述的基于Active MQ+Redis的同步消息队列,其特征在于:所述消息有且只有一次被消费者消费。
3.根据权利要求1所述的基于Active MQ+Redis的同步消息队列,其特征在于:所述Redis为单线程。
4.根据权利要求1所述的基于Active MQ+Redis的同步消息队列,其特征在于:所述Redis的list数据结构为双向队列数据结构。
5.根据权利要求1所述的基于Active MQ+Redis的同步消息队列,其特征在于:所述Redis中预设有消息消费时限;
在步骤S5中,当消费者成为领导者时,所述Redis自动存储开始消费消息的时间,当领导者实际消费时间大于预设消费时限时,所述Redis自动删除领导者持有的分布式锁并重新向持有消息的消费者发送分布式锁。
6.根据权利要求1所述的基于Active MQ+Redis的同步消息队列,其特征在于:消费者消费过程中因断电或重启导致消费中断时,正在被消费的消息被所述Redis从所述ActiveMQ消息队列中取出并保存,消费者重启后,所述Redis将保存的消息重新加载到所述ActiveMQ消息队列中供消费者继续消费,直到消费完成后所述Redis删除保存的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710198762.0A CN107092533A (zh) | 2017-03-29 | 2017-03-29 | 基于ActiveMQ+Redis的同步消息队列 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710198762.0A CN107092533A (zh) | 2017-03-29 | 2017-03-29 | 基于ActiveMQ+Redis的同步消息队列 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107092533A true CN107092533A (zh) | 2017-08-25 |
Family
ID=59649209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710198762.0A Pending CN107092533A (zh) | 2017-03-29 | 2017-03-29 | 基于ActiveMQ+Redis的同步消息队列 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107092533A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562547A (zh) * | 2017-08-30 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种ctdb集群系统及创建方法、创建系统 |
CN107911462A (zh) * | 2017-11-27 | 2018-04-13 | 南京信通科技有限责任公司 | 基于ActiveMQ的大批量数据同步方法 |
CN108009029A (zh) * | 2017-11-30 | 2018-05-08 | 中电福富信息科技有限公司 | 基于Ignite网格缓存数据解耦持久化的方法及系统 |
CN109743137A (zh) * | 2019-01-10 | 2019-05-10 | 浙江小泰科技有限公司 | 一种支持更新的分布式延迟消息队列处理系统 |
CN110471780A (zh) * | 2019-08-21 | 2019-11-19 | 北京百佑科技有限公司 | 分布式事件处理装置、终端和计算机存储介质 |
CN111381987A (zh) * | 2020-03-13 | 2020-07-07 | 北京金山云网络技术有限公司 | 一种消息处理方法、装置、电子设备及介质 |
CN111510469A (zh) * | 2019-01-31 | 2020-08-07 | 上海哔哩哔哩科技有限公司 | 一种消息处理方法和装置 |
CN111988359A (zh) * | 2020-07-15 | 2020-11-24 | 中科物缘科技(杭州)有限公司 | 基于消息队列的数据分片同步方法及系统 |
CN112162868A (zh) * | 2020-08-28 | 2021-01-01 | 广州南方卫星导航仪器有限公司 | 应用于集群处理的数据通信方法、装置及存储介质 |
CN112309162A (zh) * | 2020-10-27 | 2021-02-02 | 蜂助手股份有限公司 | 一种处理路内停车监控数据的方法、装置及系统 |
CN112367373A (zh) * | 2020-10-27 | 2021-02-12 | 浙江大华技术股份有限公司 | 分布式系统的节点确定方法和装置及存储介质 |
CN112671819A (zh) * | 2020-08-17 | 2021-04-16 | 紫光云技术有限公司 | 一种基于redis的分布式消息通信方法 |
CN115576714A (zh) * | 2022-10-19 | 2023-01-06 | 深圳市中兴新云服务有限公司 | 基于mq框架确保消息队列消费顺序准确性的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991778A (zh) * | 2015-07-15 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 基于树形结构的过滤方法与装置 |
CN105700943A (zh) * | 2015-12-31 | 2016-06-22 | 上海百事通信息技术股份有限公司 | 分布式任务调度方法及系统 |
CN105760221A (zh) * | 2016-02-02 | 2016-07-13 | 中博信息技术研究院有限公司 | 分布式计算框架的任务调派系统 |
CN105808363A (zh) * | 2016-03-11 | 2016-07-27 | 浪潮通用软件有限公司 | 一种基于Active MQ消息队列实现异步执行的方法 |
CN106446037A (zh) * | 2016-08-31 | 2017-02-22 | 南威软件股份有限公司 | 一种基于分布式锁实现Redis与MYSQL数据一致性的方法 |
-
2017
- 2017-03-29 CN CN201710198762.0A patent/CN107092533A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991778A (zh) * | 2015-07-15 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 基于树形结构的过滤方法与装置 |
CN105700943A (zh) * | 2015-12-31 | 2016-06-22 | 上海百事通信息技术股份有限公司 | 分布式任务调度方法及系统 |
CN105760221A (zh) * | 2016-02-02 | 2016-07-13 | 中博信息技术研究院有限公司 | 分布式计算框架的任务调派系统 |
CN105808363A (zh) * | 2016-03-11 | 2016-07-27 | 浪潮通用软件有限公司 | 一种基于Active MQ消息队列实现异步执行的方法 |
CN106446037A (zh) * | 2016-08-31 | 2017-02-22 | 南威软件股份有限公司 | 一种基于分布式锁实现Redis与MYSQL数据一致性的方法 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562547B (zh) * | 2017-08-30 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种ctdb集群系统及创建方法、创建系统 |
CN107562547A (zh) * | 2017-08-30 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种ctdb集群系统及创建方法、创建系统 |
CN107911462A (zh) * | 2017-11-27 | 2018-04-13 | 南京信通科技有限责任公司 | 基于ActiveMQ的大批量数据同步方法 |
CN108009029A (zh) * | 2017-11-30 | 2018-05-08 | 中电福富信息科技有限公司 | 基于Ignite网格缓存数据解耦持久化的方法及系统 |
CN108009029B (zh) * | 2017-11-30 | 2022-01-04 | 中电福富信息科技有限公司 | 基于Ignite网格缓存数据解耦持久化的方法及系统 |
CN109743137A (zh) * | 2019-01-10 | 2019-05-10 | 浙江小泰科技有限公司 | 一种支持更新的分布式延迟消息队列处理系统 |
CN109743137B (zh) * | 2019-01-10 | 2022-01-14 | 浙江小泰科技有限公司 | 一种支持更新的分布式延迟消息队列处理系统 |
CN111510469A (zh) * | 2019-01-31 | 2020-08-07 | 上海哔哩哔哩科技有限公司 | 一种消息处理方法和装置 |
CN110471780A (zh) * | 2019-08-21 | 2019-11-19 | 北京百佑科技有限公司 | 分布式事件处理装置、终端和计算机存储介质 |
CN110471780B (zh) * | 2019-08-21 | 2022-04-26 | 北京百佑科技有限公司 | 分布式事件处理装置、终端和计算机存储介质 |
CN111381987A (zh) * | 2020-03-13 | 2020-07-07 | 北京金山云网络技术有限公司 | 一种消息处理方法、装置、电子设备及介质 |
CN111988359A (zh) * | 2020-07-15 | 2020-11-24 | 中科物缘科技(杭州)有限公司 | 基于消息队列的数据分片同步方法及系统 |
CN111988359B (zh) * | 2020-07-15 | 2023-08-15 | 中国科学院计算技术研究所数字经济产业研究院 | 基于消息队列的数据分片同步方法及系统 |
CN112671819A (zh) * | 2020-08-17 | 2021-04-16 | 紫光云技术有限公司 | 一种基于redis的分布式消息通信方法 |
CN112162868A (zh) * | 2020-08-28 | 2021-01-01 | 广州南方卫星导航仪器有限公司 | 应用于集群处理的数据通信方法、装置及存储介质 |
CN112162868B (zh) * | 2020-08-28 | 2022-05-13 | 广州南方卫星导航仪器有限公司 | 应用于集群处理的数据通信方法、装置及存储介质 |
CN112367373A (zh) * | 2020-10-27 | 2021-02-12 | 浙江大华技术股份有限公司 | 分布式系统的节点确定方法和装置及存储介质 |
CN112309162A (zh) * | 2020-10-27 | 2021-02-02 | 蜂助手股份有限公司 | 一种处理路内停车监控数据的方法、装置及系统 |
CN112367373B (zh) * | 2020-10-27 | 2022-06-24 | 浙江大华技术股份有限公司 | 分布式系统的节点确定方法和装置及存储介质 |
CN115576714A (zh) * | 2022-10-19 | 2023-01-06 | 深圳市中兴新云服务有限公司 | 基于mq框架确保消息队列消费顺序准确性的方法 |
CN115576714B (zh) * | 2022-10-19 | 2023-05-30 | 深圳市中兴新云服务有限公司 | 基于mq框架确保消息队列消费顺序准确性的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107092533A (zh) | 基于ActiveMQ+Redis的同步消息队列 | |
US20180365254A1 (en) | Method and apparatus for processing information flow data | |
CN105653425B (zh) | 基于复杂事件处理引擎的监控系统 | |
US9699729B2 (en) | Methods and systems for regulating communications at a mobile communications device | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
WO2022022140A1 (zh) | 数据包的同步方法、装置、设备及存储介质 | |
CN105162879B (zh) | 实现多机房数据一致性的方法、装置及系统 | |
CN109756417A (zh) | 离线消息分发方法、服务器及存储介质 | |
CN111045806A (zh) | 延迟消息队列实现方法以及系统 | |
US9712477B2 (en) | Email notifications | |
CN111198923A (zh) | 一种基于消息队列的数据同步方法和系统 | |
CN110830548A (zh) | 物联网卡运营平台、数据更新方法、装置及存储介质 | |
CN110300067A (zh) | 队列调整方法、装置、设备及计算机可读存储介质 | |
CN109446204B (zh) | 一种即时通信的数据存储方法、装置、电子设备和介质 | |
CN110740145A (zh) | 消息消费方法、装置、存储介质及电子设备 | |
CN111625322B (zh) | 数据处理方法、系统及设备 | |
CN110554885A (zh) | 子应用生成方法、装置、电子设备及存储介质 | |
US8510426B2 (en) | Communication and coordination between web services in a cloud-based computing environment | |
CN110333916A (zh) | 请求消息处理方法、装置、计算机系统及可读存储介质 | |
WO2016107102A1 (zh) | 短信并发业务处理方法及装置 | |
CN112910987A (zh) | 消息推送方法、系统、装置、设备及存储介质 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN113254274A (zh) | 消息处理方法、装置、存储介质以及服务器 | |
CN111083037B (zh) | 用于实现即时通讯的方法、装置、介质以及电子设备 | |
US9740587B2 (en) | Distributing power usage data for low-level components of a computing device to subscribing programs |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170825 |