报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

完全可以使用 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:341670
用户头像

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

关注

评论

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

聚焦AI算力、大模型平台等前沿领域,AI Infra工作组会在渝召开

中国信通院AI Infra工作组

MES管理系统中电子看板都有哪些类型?

万界星空科技

mes 数据大屏 万界星空科技 生产看板

【教程】混淆代码保护与优化

RocketMQ 流存储解析:面向流场景的关键特性与典型案例

阿里巴巴云原生

阿里云 RocketMQ 云原生

终于有人讲清楚了!如何成为高价值的程序员

互联网工科生

万界星空科技铜杆加工行业生产管理MES系统

万界星空科技

制造业 mes 电线电缆行业 铜杆行业 铜业

探索海外市场舆情:云手机助力企业赢得全球竞争

Ogcloud

云手机 海外云手机 云手机海外版 海外舆情监控 海外舆情

关于征集中国人工智能产业发展联盟“人工智能基础平台(AI Infra)工作组”首批成员单位的通知

中国信通院AI Infra工作组

ERPNext移动平均计价

麦兜

可信AI评测结果 | 电科网安通过深度学习平台和机器学习平台产品能力行业首批评测!

中国信通院AI Infra工作组

FreeRTOS教程9 软件定时器

不在线第一只蜗牛

定时器 FreeRTOS

户外LED防水箱体:技术发展与市场趋势

Dylan

技术 性能 LED显示屏 户外LED显示屏

悦数图数据库推出 AI 知识图谱构建器及图语言生成助手

悦数图数据库

图数据库

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度

阿里云云效

阿里云 微服务 云原生 云效

✅到底有没有必要分库分表,如何考量的

派大星

MySQL 数据库 Java 面试

一站式测试解决方案,从人才到工具,我们全程护航!

测吧(北京)科技有限公司

测试

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度

阿里巴巴云原生

阿里云 微服务 云原生 云效

人工智能产业发展联盟AI Infra工作组筹备会成功召开

中国信通院AI Infra工作组

AI Infra多项标准发布,大模型基础设施研究启动

中国信通院AI Infra工作组

智能工厂核心功能系统-MES生产管理系统

万界星空科技

制造业 智能工厂 智能制造 mes 万界星空科技

海外舆情监控的重要性以及云手机的推荐

Ogcloud

云手机 海外云手机 云手机海外版 舆情监控

智能商品计划系统:鞋服品牌的未来价值引擎

第七在线

基于火山引擎 VCI 实现资源装箱率提升,助力企业云成本优化

极客天地

中国信通院牵头编制的AI开发平台行业标准正式发布

中国信通院AI Infra工作组

【论文速读】| 潜在越狱:用于评估大语言模型文本安全性和输出鲁棒性的基准测试

云起无垠

软件全套资料:开发、实施、运维、安全、交付、立项、过程、结项、投标方案、资质评审等

金陵老街

详细设计 软件文档 规格说明

GPU云服务器的优势和应用

Ogcloud

gpu 服务器 云服务器 GPU实例 GPU云服务器

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