写点什么

完全可以使用 RDBMS 作为消息队列

  • 2014-10-09
  • 本文字数:779 字

    阅读完需:约 3 分钟

Lukas Eder JOOQ 母公司的创始人兼 CEO。近日,他针对《将数据库作为消息队列是一种反模式》一文的观点及其在 reddit 上引发的争论表达了看法。他认为,使用数据库作为消息队列不是一种反模式,理由如下:

  1. KISS 和 YAGNI 原则——如果使用 RDBMS 可以满足消息传递的需求,那么就不必花费时间和金钱引入一款复杂的消息队列工具;
  2. 事务性队列——即使使用成熟的消息队列工具,要实现事务性队列依然很复杂,而使用基于 RDBMS 的队列则可以避免事务处理的复杂性;
  3. 无需额外的运维工作——引入新的外部系统会增加运维成本;
  4. 如果已经使用了 Oracle 数据库,则可以直接使用其内置的队列 API Oracle AQ
  5. 以 RDBMS 为中心的应用程序更简单——数据的存在时间大于应用程序,比如, Paypal 从 Java 切换到 JavaScript ,但他们并没有替换掉所有的数据库。因此,如果 RDBMS 是系统的中心,那么在 RDBMS 中运行消息队列是一种选择。

但有位自称见过多个此类案例的读者列举了这种做法面临的几项挑战:

  1. 数据库没有有丢弃和限流策略,如果信息产生速度大于消费速度,那么消息表就会变得越来越大。
  2. 数据库表可以针对写优化,也可以针对读优化,但无法同时对两者进行优化。
  3. 数据库无法对一个数据项进行并发处理。
  4. 大批量的数据处理会产生长事务,事务越长锁的持有时间越长。

Lukas 承认,使用 RDBMS 作为消息队列有一些注意事项。但针对第三点,他提到,Oracle AQ 针对 FOR UPDATE 语句进行了扩展,提供了 FOR UPDATE SKIP LOCKED 语句。该语句允许对记录进行非阻塞式悲观锁定,提高了并发性。

另外,还有一位读者提到, Spring Integration 支持使用数据库存储队列消息,有兴趣的读者可以对此进行研究测试。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-10-09 03:341993
用户头像

发布了 1008 篇内容, 共 445.5 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

海外红人营销如何帮助品牌建立影响力?

Wolink

出海服务商 出海企业 海外社媒运营 海外营销推广 沃链Wolink

基于云技术的域名解析系统研究:传统解析技术的局限性

防火墙后吃泡面

自建团队还是寻找代理?海外推广模式的优劣对比与选型建议

Wolink

跨境电商 出海 出海服务商 海外营销推广 达人营销

云栖实录 | 驶入智驾深水区:广汽的“数据突围“之路

阿里云大数据AI技术

阿里云 MaxCompute Dataworks PAI 大数据AI平台

HarmonyOS 6发布:系统级智能体小艺进阶超级助理,衣食住行一句话轻松搞定

新消费日报

ONES MCP Server 上线,支持主流 AI Coding 工具集成

万事ONES

研发管理 ONES cursor mcpserver aicoding

大数据-132 Flink SQL 实战入门 | 3 分钟跑通 Table API + SQL 含 toChangelogStream 新写法

武子康

Java 大数据 flink spark 分布式

数字孪生落地难?点量云流五招破局

点量实时云渲染

3D渲染 数字孪生 智慧工厂 云渲染 元宇宙

不止于曝光:公司如何利用海外KOL营销打造长效品牌资产

Wolink

跨境电商 出海企业 海外社媒运营 海外营销推广 达人营销

开源能源管理系统 MyEMS:赋能企业降本增效,加速能源数字化转型

开源能源管理系统

开源 能源管理系统

赋能工业 / 商业 / 公共机构:开源 MyEMS,让能源管理 “人人可及”

开源能源管理系统

开源 开源能源管理系统

就餐宝微信小程序:重塑企业食堂管理新生态

微擎应用市场

博睿数据领跑中国APMO市场,Bonree ONE 2025秋季版即将全球发布!

博睿数据

全球首个超声多模态大模型!百度百舸支撑海豚智能实现高效训练与稳定服务

Baidu AICLOUD

大模型

企业海外营销预算如何分配?高效ROI模型搭建

Wolink

跨境电商 出海服务商 出海企业 海外社媒营销 海外营销推广

买对存储,省时省心 | 双十一闪迪帮你轻松玩转数据世界

极客天地

海外达人营销全景图:从策略制定到效果衡量的完整框架

Wolink

跨境贸易 跨境电商 出海服务商 海外营销推广 达人营销

全球首个超声多模态大模型!百度百舸支撑海豚智能实现高效训练与稳定服务

新消费日报

Last call丨三菱汽车、Rolls Royce航空发动机、Mendix 邀您共探数字孪生技术如何落地,促进企业商业价值提升

Altair RapidMiner

AI 汽车 数字孪生 仿真 CAE

成语趣有奖微信小程序管理系统:趣味与变现兼具的优质选择

微擎应用市场

高效便捷的微信小程序信息管理工具,助力教育场景精细化运营

微擎应用市场

企业如何进行海外营销?

Wolink

跨境贸易 跨境电商 出海服务商 出海企业 海外营销推广

微网红矩阵,正在颠覆传统海外营销的精准投放模式

Wolink

跨境电商 出海服务商 海外营销推广 沃链Wolink 达人营销

轻量服务器Lighthouse + 1Panel + Halo,三步打造你的专属网站

GoodTime

服务器 建站 halo LightHouse 1Panel

AI赋能:下一代海外社媒推广的智能化路径

Wolink

跨境电商 出海服务商 出海企业 海外营销推广 达人营销

掌门社交电商系统:赋能本地生活的三方共赢新生态

微擎应用市场

Nacos 3.1.0 正式发布,支持 A2A 注册中心与 MCP 注册协议增强

阿里巴巴云原生

阿里云 云原生 nacos

怎样获取快递信心推送服务的API接口?

快递鸟

开源隐私计算框架SecretFlow | 基于隐语的金融全链路场景介绍和应用实践

隐语SecretFlow

开源 数据 隐私计算 金融风控

企业如何选择最合适的海外推广渠道

Wolink

跨境贸易 跨境电商 出海企业 海外营销推广 达人营销

告别浪费:如何打造高转化率的海外社交媒体广告策略?

Wolink

跨境电商 出海服务商 海外社媒运营 海外营销推广 品牌出海

完全可以使用RDBMS作为消息队列_数据库_谢丽_InfoQ精选文章