首页 文章 精选 留言 我的

精选列表

搜索[开源操作系统],共10000篇文章
优秀的个人博客,低调大师

Kafka vs RabbitMQ vs RocketMQ vs Pulsar:四大开源消息中间件全面对比

消息中间件应用广泛,Kafka、RabbitMQ 、RocketMQ 和 Pulsar 更是其中的佼佼者,经常被放在一起比较。 从数据迁移同步行业来看,Kafka 用户占了大多数,因为在大数据生态中,其是核心组件之一。RocketMQ 在国内也比较流行,主要应用在在线业务场景,这和它的技术特性和发展路径紧密相关。相比之下,RabbitMQ 和 Pulsar 的使用量在国内相对少些。 那么,它们到底有什么区别呢?本文将从架构设计、性能表现、可扩展性、可靠性 4 个角度进行对比,以呈现一个相对客观的产品状态。 架构设计 Kafka Kafka 采用分布式日志存储架构。Producer 将消息写入 Broker,Broker 将消息存储在分区日志中,Consumer 从分区中顺序拉取数据。ZooKeeper 管理集群元数据。 RabbitMQ RabbitMQ 基于 AMQP 协议。Producer 将消息发送到 Exchange,再由 Exchange 根据路由规则将消息投递到不同 Queue,最终由 Consumer 消费。其路由模式(direct/topic/fanout/headers)非常灵活,便于应对复杂消息流转。 RocketMQ RocketMQ 采用轻量级 NameServer + Broker 架构,Producer 从 NameServer 获取路由信息,再将消息写入 Broker 的队列(MessageQueue)。支持事务消息、顺序消息。 Pulsar Pulsar 采用 Broker + BookKeeper(存储层)架构,实现计算与存储分离。支持分层存储,天然云原生。 性能表现 指标 Kafka RabbitMQ RocketMQ Pulsar 吞吐量 单节点可达 数十万–百万 TPS,集群扩展后可达 百万级 TPS+ 单节点约 万级 TPS,高并发下易受限 单节点 数十万 TPS,集群可扩展到百万级(双十一场景) 单节点 数十万 TPS,大规模集群可达 百万级+ 消息延迟 通常 数十毫秒 毫秒级,在高吞吐量情况下延迟增大 通常* 几十毫秒* 通常 几十毫秒 消息堆积能力 天然支持海量堆积与历史回放(磁盘持久化,分区日志) 不适合长时间、大规模堆积,内存压力大 支持长时间堆积 基于 BookKeeper,多副本存储,支持大规模堆积与分层存储 注:数据仅供参考,权威 benchmark 参见产品官方资料 可扩展性 Kafka :基于 分区(Partition) 实现水平扩展,一个 Topic 可以拆分为多个分区并行处理。Broker 集群内的节点数量可扩展至成百上千,支撑大规模实时数据流。 RabbitMQ :通过 多节点集群 模式扩展,但 Queue 需要复制到多个节点,带来较高的同步开销。因此更适合中等规模数据场景。 RocketMQ :通过 增加 Broker 和队列数量 提升性能,存储层支持动态增加 Broker,消费者也能独立扩展,可无停机进行扩容。对于大规模分布式系统,RocketMQ 的扩展方式比较友好。 Pulsar :采用 存算分离 ,可以单独增加 Broker 提升处理能力,增加 BookKeeper 提升存储能力,互不影响,再加上多租户动态资源分配,适合 大规模云原生环境。 可靠性 Kafka :依靠 分区多副本 机制保证数据安全。默认提供 At-least-once 语义,通过幂等写入和事务机制可以实现 Exactly-once。 RabbitMQ :3.8.0 版本中引入了 Quorum Queue,基于 Raft 共识算法,增强可靠性。提供 At-least-once 语义,保证不丢消息,但可能存在重复,需要业务端做幂等处理。 RocketMQ :通过 主从复制 和 刷盘机制 保证可靠性。新版本的 DLedger 基于 Raft 协议,支持自动主从切换,容错能力更强。 Pulsar:基于 BookKeeper 的多副本存储,即使 Broker 故障也能保障数据安全。天然支持多租户和隔离,可靠性和容错能力突出,尤其适合云原生环境。 总结 特性 Kafka RabbitMQ RocketMQ Pulsar 实现语言 Java/Scala Erlang Java Java 消费模式 Pull Push Pull Pull + Push 吞吐量 极高 一般 较高 较高 延迟 低 极低,在高吞吐量情况下会受限 低 低 消息堆积能力 极强(长期存储可回放) 较弱 强 强(分层存储,云原生) 扩展性 极强,分区扩展 一般,受限于集群和硬件资源 较强 极强,计算存储分离 可靠性 极高,多副本 高,Quorum Queue 提升可靠性 较高,DLedger 提高主从切换容错 极高,存储分离 + 多副本 协议支持 Kafka 协议 AMQP、MQTT、STOMP 等 RocketMQ 原生及多协议扩展 Pulsar 原生协议及多协议扩展 社区与生态 活跃,生态最强 稳定,插件丰富 国内用户多,云支持好 新兴但发展快,云原生场景活跃 适用场景 日志采集、实时数仓、数据总线 即时通信、任务调度、请求-应答 电商订单、金融交易、支付系统 SaaS 平台、跨数据中心消息流转 CloudCanal 如何支持数据流动? 上面我们对比了 Kafka、RabbitMQ、RocketMQ 和 Pulsar,可以看到它们在不同场景中各有优势。 无论选择哪一款消息中间件,都绕不开一个关键问题:如何把数据稳定、高效地同步到这些消息系统中? 这正是 CloudCanal 擅长的领域。CloudCanal 作为一款实时数据迁移与同步工具,具备以下特点: 实时低延迟:基于 CDC 技术捕获数据库变更,秒级同步到各类主流消息中间件,保证数据的实时流动。 一站式支持:同时支持 Kafka、RabbitMQ、RocketMQ、Pulsar 等主流消息系统,企业无需额外开发同步工具。 自动化与可视化:提供友好的 UI 界面,支持任务配置、监控与运维全流程可视化,降低运维负担。 部署灵活:支持本地私有部署和 SaaS 部署两种模式,适配不同规模的业务需求。 感兴趣的话,可点击查看如何在 5 分钟内快速实现 MySQL 到 Kafka 的数据迁移同步。 实操演示:五分钟快速实现 MySQL 到 Kafka 数据迁移同步 借助 CloudCanal,企业可以在不同消息系统之间自由选择和切换,而不必担心底层数据同步的复杂性。无论是构建实时数仓,还是支撑跨云多活的业务系统,CloudCanal 都能帮助开发者和 DBA 更快、更稳地落地。

优秀的个人博客,低调大师

开源跨境电商系统 InnoShop 发布 V0.5.8, 助力企业更好的建设自己的独立站

🚀 InnoShop V0.5.8 更新日志 🆕 新增功能 💰 支付系统集成 PayPal 支付集成: 集成 PayPal 支付网关,支持国际支付 Stripe 支付集成: 集成 Stripe 支付服务,支持信用卡支付 支付宝集成: 集成支付宝支付,支持国内移动支付 微信支付集成: 集成微信支付,完善移动端支付体验 支付方式管理: 后台支付方式配置和状态管理 支付回调处理: 完善支付成功、取消、失败的回调机制 🎨 首页拖拽功能 首页可视化编辑: 实现首页组件拖拽编辑功能 页面构建器: 支持拖拽式页面内容构建 组件排序: 支持页面组件的拖拽排序 实时预览: 拖拽编辑时的实时预览效果 🤖 AI 大模型集成 多平台 AI 服务: 集成 OpenAI、DeepSeek 等多个 AI 服务 AI 服务工厂: 统一的 AI 服务管理和调用机制 智能内容生成: AI 辅助商品描述和内容创作 多语言 AI 支持: 支持多语言环境下的 AI 功能 📦 产品功能增强 产品视频功能: 新增产品视频展示和管理 产品变体管理: 完善产品规格和变体系统 相关产品推荐: 产品页面相关商品和文章推荐 产品评价系统: 增强产品评价展示和管理 📝 内容管理优化 文章分类系统: 重构文章分类管理功能 内容关联: 文章与产品的关联展示 摘要和详情: 分类页面摘要和详情页面优化 状态切换组件: 统一的状态切换UI组件 🎛️ 后台管理重构 产品分类编辑: 重构后台产品分类编辑功能 文章编辑器: 优化后台文章编辑体验 文件管理器: 增强文件上传和管理功能 插件管理: 完善插件启用、禁用、安装、卸载功能 🧩 前端组件化 Header 组件化: 前台头部组件独立化 Footer 组件化: 前台底部组件独立化 产品详情页重构: 重构前台产品详情页面结构 响应式优化: 移动端和桌面端适配优化 ⚡ 功能优化 🚀 性能和资源优化 主题静态文件: 优化主题静态资源加载机制 资产管理: 改进前端资源打包和加载 图片优化: 优化图片加载和显示性能 缓存机制: 增强系统缓存策略 📋 代码质量提升 格式化规范: 统一代码格式化标准 组件重构: 提取可复用组件和服务 架构优化: 改进代码结构和模块化设计 性能监控: 增加系统性能监控点 🐛 问题修复 🔄 循环引用修复 分类循环引用: 修复产品文章分类父级分类循环引用BUG 数据关联: 优化数据模型关联关系 📁 文件上传修复 上传大小限制: 修复文件上传大小限制问题 文件类型验证: 完善文件类型检查机制 🌍 国际化扩展 🆕 新增语言支持 巴西葡萄牙语: 新增 pt-br 语言包 柬埔寨高棉语: 新增 km 语言包 荷兰语: 新增 nl 语言包 🔄 语言包完善 中文优化: 完善简体中文和繁体中文翻译 英文校对: 优化英文语言包准确性 其他语言: 补充和完善其他语言包内容 📦 翻译模块更新 翻译工具: 更新翻译工具和流程 多语言支持: 增强多语言环境下的功能支持 🏗️ 架构改进 🗄️ 数据库结构 迁移文件: 新增多个数据库迁移文件 模型关系: 优化数据模型关联关系 索引优化: 改进数据库查询性能 🔧 服务层重构 AI 服务层: 重构 AI 服务调用架构 支付服务: 统一支付服务接口设计 仓库模式: 完善数据访问层设计 📦 依赖和配置 📚 依赖管理 Composer 更新: 更新 composer.lock 依赖锁定 第三方包升级: 升级核心依赖包版本 新增依赖: 引入新的功能依赖包 ⚙️ 配置优化 Nginx 配置: 优化 nginx.htaccess 配置 环境配置: 改进开发和生产环境配置 插件配置: 完善插件配置管理机制 🎯 核心亮点 💳 完整支付生态: 集成主流支付方式,支持国内外支付需求 🎨 可视化编辑: 首页拖拽功能提升用户体验 🤖 AI 智能化: 多平台 AI 集成,提升内容创作效率 🌐 国际化完善: 新增3种语言,覆盖更广泛用户群体 🏗️ 架构升级: 代码重构和性能优化,提升系统稳定性 🔧 开发体验: 完善的开发工具和管理界面 本次更新涵盖了支付系统、可视化编辑、AI集成、国际化等多个重要方面,为 InnoShop 电商系统提供了更完善的功能和更好的用户体验。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册