基于数据库的分布式消息队列

本文介绍了一种基于数据库的分布式消息队列实现,利用乐观锁和随机排序解决竞争问题,支持入队顺序、重入队列、分布式生产和消费以及多队列绑定。文章详细阐述了队列的工作机制,包括更新乐观锁和获取消息的SQL操作,并讨论了消息对象的存储规则及未来改进方向。
摘要由CSDN通过智能技术生成

需求

    在传统的应用中由于消息队列缺乏,而且为了兼容必要的部署和配置需求,往往想在不太多修改代码的情况下拥有队列功能。常用的消息队列有传统的JMS,amqp以及互联网的mq系列的中间件等。然而在传统的基于数据库的应用中,往往只想拥有简单的队列功能,并不存在着大量并发和分布式的问题,因此构建一个基于数据库表存储结构的队列已经基本能满足业务需求。该库的实现为jdjjob库

    为了满足当前系统中的队列需求:1. 包含入队顺序按照时间或者是序列号之类的; 2. 包含重入队列,拥有记录上次失败原因和失败次数; 3. 支持多机分布式的队列生产和消费; 4. 支持多个队列的绑定和监听。为此设计了对应的表结构如下:

CREATE TABLE `jobs` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值