消息中间件选型分析:从Kafka与RabbitMQ的对比看全局

2018 年 5 月 02 日

一、前言

消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。

目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如 ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ 等。不管选择其中的哪一款,都会有用的不趁手的地方,毕竟不是为你量身定制的。有些大厂在长期的使用过程中积累了一定的经验,其消息队列的使用场景也相对稳定固化,或者目前市面上的消息中间件无法满足自身需求,并且也具备足够的精力和人力而选择自研来为自己量身打造一款消息中间件。但是绝大多数公司还是不会选择重复造轮子,那么选择一款合适自己的消息中间件显得尤为重要。就算是前者,那么在自研出稳定且可靠的相关产品之前还是会经历这样一个选型过程。

在整体架构中引入消息中间件,势必要考虑很多因素,比如成本及收益问题,怎么样才能达到最优的性价比?虽然消息中间件种类繁多,但是各自都有各自的侧重点,选择合适自己、扬长避短无疑是最好的方式。如果你对此感到无所适从,本文或许可以参考一二。

原文链接:【 https://www.infoq.cn/article/kafka-vs-rabbitmq 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2018 年 5 月 02 日 18:02 43988

评论 5 条评论

发布
用户头像
朱大厉害了,从功能选型消息中间件把大多数分布式系统的概念都提到了,收获很多
2020 年 08 月 27 日 10:32
回复
用户头像
写的很棒,作者的两本mq书籍,一本将rabbitmq,一本讲kafka,我都看了,写的很好,帮助很大。
2020 年 07 月 04 日 14:24
回复
用户头像
文章很棒,感谢作者。
2020 年 02 月 14 日 23:34
回复
用户头像
干货满满~学习了
2019 年 08 月 19 日 17:52
回复
用户头像
kafka 官方文档描述是支持多租户的,通过认证,授权,配额限制可以完成。
2018 年 12 月 26 日 11:30
回复
没有更多评论了
发现更多内容

git回退版本,再返回最新分支git pull失败的解决经验

良知犹存

git

硬件产品管理(4):人体工程学验证

老壳有点爽

硬件产品 智能硬件 产品管理 人体工程学

《我在一线做用户增长》读书笔记及感想

王新涵

用户增长

高并发系统三大利器之限流

java金融

架构 高并发 分布式限流 限流 单机限流

Java中的单例模式(完整篇)

看山

Java 设计模式 单例模式

硬件产品管理(3):产品问题整理-举例

老壳有点爽

创业 硬件产品 智能硬件

编程的乐趣与苦恼

看山

随笔杂谈 人月神话

硬件产品管理(2):产品QA检测

老壳有点爽

硬件产品 智能硬件 QA 产品管理

硬件产品管理(5):硬件产品工作流程管理及案例分析

老壳有点爽

创业 硬件产品 智能硬件 产品管理

面试的时候不能做捧哏

escray

面试 学习笔记 面试现场

(2.6w字)网络知识点灵魂拷问——前端面试必问

执鸢者

面试 前端 网络 HTTP

Java中的一些限制

xiaoxi666

商业计划书制作(4):自我评估&投资商关注重点

老壳有点爽

创业 财富自由 商业计划书

商业计划书制作(6):商业模式

老壳有点爽

创业 商业模式 财富自由 商业计划书

硬件产品管理(1):手板管理流程

老壳有点爽

创业 硬件产品 智能硬件 手板

程序员什么时候该考虑辞职

看山

随笔杂谈 辞职

ARTS-WEEK11

一周思进

ARTS 打卡计划

可伸缩系统架构简介

Rayjun

分布式 可伸缩

什么是产品以及如何将一个开源软件项目产品化

常平

架构模式 架构设计 架构师 产品思维

ARTS Week13

时之虫

ARTS 打卡计划

disruptor 高性能队列最佳选择

柿子

队列 disruptoer 高性能队列

商业计划书制作(7):编写规范及常见内容

老壳有点爽

创业 财富自由 商业计划书

商业计划书制作(8):财务分析部分

老壳有点爽

创业 财富自由 商业计划书 财务分析

高并发系统三大利器之缓存

java金融

Java 缓存 高并发 本地缓存 分布式缓存

键盘敲入 A 字母时,期间发生了什么....

小林coding

操作系统 计算机基础 键盘

架构师训练营 - 第 8 周学习总结

红了哟

商业计划书制作(5):业务发展的历史与未来

老壳有点爽

创业 财富自由 商业计划书 业务发展的历史与未来

设计模式:建造者模式

看山

设计模式 建造者模式

如何做好项目时间管理?

石云升

项目管理 需求 项目排期

Java ForEach语句判断是否为空

引花眠

bug

ARTS打卡 第13周

引花眠

微服务 ARTS 打卡计划

众安黑客马拉松大赛总决赛-InfoQ小编探班

众安黑客马拉松大赛总决赛-InfoQ小编探班

消息中间件选型分析:从Kafka与RabbitMQ的对比看全局-InfoQ