RabbitMQ/RocketMQ/Kafka知识体系

(ActiveMQ/RabbitMQ/RocketMQ)+Kafka笔记,这份神仙笔记,让我佩服的五体投地 最近有好多朋友都去面试,面完回来跟我说。额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ( ActiveMQ/RabbitMQ/RocketMQ)+Kafka等的纯手绘知识体系图、面试以及相关的学习笔记。 阅读详情

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。不定期分享高并发、高可用、高性能、微服务、分布式、海量数据、性能调优、云原生、项目管理、产品思维、技术选型、架构设计、求职面试、副业思维、个人成长等内容。

Java程序员廖志伟

🌾阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。阅读结束后,反思和总结所学内容,并尝试应用到现实中,有助于深化理解和应用知识。与朋友或同事分享所读内容,讨论细节并获得反馈,也有助于加深对知识的理解和吸收。💡在这个美好的时刻,笔者不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

优快云

一、RabbitMQ知识体系

消息模型

RabbitMQ作为基于AMQP协议的消息代理,其消息模型设计旨在提供灵活性和可扩展性,以适应不同的业务需求。以下是三种主要的消息模型及其实现细节:

  • 直连交换器(Direct Exchange):在这种模式下,消息的发送者根据指定的路由键将消息发送到交换器,交换器再根据路由键将消息路由到绑定的队列。实现细节包括:

    • 路由键的精确匹配:发送者需要正确设置消息的路由键,交换器根据路由键匹配队列。
    • 队列绑定:在RabbitMQ中,队列需要与交换器进行绑定,指定路由键,以便交换器能够根据路由键将消息发送到对应的队列。
  • 扇形交换器(Fanout Exchange):扇形交换器将接收到的消息广播到所有与之绑定的队列。实现细节包括:

    • 无路由键匹配:扇形交换器不进行路由键匹配,直接将消息广播到所有绑定的队列。
    • 简化路由:由于不需要路由键匹配,扇形交换器适用于广播消息的场景。
  • 主题交换器(Topic Exchange):主题交换器根据消息的路由键的模式,将消息发送到符合模式的队列。实现细节包括:

    • 路由键模式匹配:路由键可以包含通配符(如“#”和“*”),用于匹配队列。
    • 主题订阅:消费者需要订阅特定的主题,以便接收符合路由键模式的消息。
消息传递

RabbitMQ的消息传递机制确保消息的可靠性和一致性,以下是其关键点的技术实现细节:

  • 消息确认机制:消费者在消息处理完成后发送确认信号,告知RabbitMQ消息已成功处理。实现细节包括:

    • 自动确认模式:消费者在接收消息时自动发送确认信号。
    • 手动确认模式:消费者在处理完消息后显式发送确认信号。
  • 事务消息:事务确保消息的原子性,要么全部成功,要么全部失败。实现细节包括:

    • 开启事务:在发送或接收消息前开启事务。
    • 提交/回滚事务:在消息处理完成后提交事务,或者在出现错误时回滚事务。
  • 死信队列:当消息无法被消费时,如过期、拒绝或队列长度超过限制,会被发送到死信队列。实现细节包括:

    • 死信交换器:创建一个特殊的交换器,用于接收死信队列的消息。
    • 死信路由键:设置特定的路由键,以便将死信消息路由到死信队列。
集群架构

RabbitMQ集群架构设计用于提高可用性和扩展性,以下是其主要技术的实现细节:

  • 镜像队列:在多个节点上复制队列,提高数据冗余。实现细节包括:

    • 镜像队列配置:在创建队列时指定镜像队列,并设置复制策略。
    • 节点同步:RabbitMQ通过节点间的心跳和同步机制,保持镜像队列的一致性。
  • 联邦插件:将多个RabbitMQ节点组成一个联邦,实现跨节点的消息传递。实现细节包括:

    • 联邦插件配置:在RabbitMQ中启用联邦插件,并配置联邦成员。
    • 跨节点消息传递:联邦插件通过虚拟交换器实现跨节点消息传递。
  • 集群节点类型:包括普通节点、管理节点和监控节点。实现细节包括:

    • 节点角色分配:根据节点功能分配节点角色。
    • 节点监控:监控节点状态,确保集群稳定运行。
高级特性

RabbitMQ的高级特性旨在增强其功能,以下是其实现细节:

  • TTL消息:设置消息的过期时间,超过时间后消息会被丢弃。实现细节包括:

    • TTL设置:在发送消息时指定TTL值。
    • 消息过期处理:RabbitMQ在消息过期时将其移除。
  • 优先级队列:允许消息根据优先级进行排序和消费。实现细节包括:

    • 优先级设置:在发送消息时指定优先级。
    • 优先级消费:RabbitMQ根据优先级排序消息,优先处理高优先级消息。
  • RPC模式:提供远程过程调用功能,实现异步调用。实现细节包括:

    • RPC请求/响应模式:客户端发送RPC请求,服务端处理请求并发送响应。
    • 请求/响应队列:RabbitMQ为RPC请求和响应创建队列,实现请求/响应通信。

二、RocketMQ知识体系

消息类型

RocketMQ支持多种消息类型,以满足不同的业务场景。以下是几种主要消息类型及其实现细节:

  • 定时消息:在指定时间发送的消息。实现细节包括:

    • 定时任务调度:RocketMQ通过定时任务调度器实现消息的定时发送。
    • 时间戳标记:消息中包含时间戳,用于标记发送时间。
  • 事务消息:确保消息的原子性,支持本地事务。实现细节包括:

    • 事务消息标记:消息中包含事务标识,用于标识事务消息。
    • 事务消息处理:RocketMQ在事务消息处理过程中,确保消息的原子性。
  • 延迟消息:在指定延迟后发送的消息。实现细节包括:

    • 延迟队列:RocketMQ通过延迟队列实现消息的延迟发送。
    • 延迟时间标记:消息中包含延迟时间,用于标记发送延迟。
存储机制

RocketMQ的存储机制是其核心功能之一,以下是其实现细节:

  • CommitLog设计:存储消息的日志文件,是消息存储的核心。实现细节包括:

    • 日志文件存储:CommitLog将消息存储在磁盘上的日志文件中。
    • 数据持久化:RocketMQ通过刷盘策略确保消息的持久化。
  • 消息索引:快速定位消息的位置。实现细节包括:

    • 索引文件存储:RocketMQ在磁盘上存储索引文件,用于快速定位消息。
    • 索引更新:RocketMQ在消息写入时更新索引文件。
  • 刷盘策略:确保消息持久化到磁盘。实现细节包括:

    • 消息持久化策略:RocketMQ提供多种消息持久化策略,如同步刷盘、异步刷盘等。
    • 刷盘时机:RocketMQ在消息写入后,根据策略选择合适的时机进行刷盘。
高可用设计

RocketMQ提供高可用设计,以下是其主要技术的实现细节:

  • 主从同步:确保数据的一致性。实现细节包括:

    • 主从复制:RocketMQ通过主从复制机制,确保主节点和从节点数据的一致性。
    • 同步机制:RocketMQ通过同步机制,确保主从节点数据的一致性。
  • Dledger选举:在主节点故障时进行选举。实现细节包括:

    • 选举算法:RocketMQ采用基于Raft算法的选举算法,实现高可用性。
    • 选举流程:在主节点故障时,从节点进行选举,选择新的主节点。
  • 故障转移:在节点故障时自动切换到备份节点。实现细节包括:

    • 节点监控:RocketMQ监控节点状态,检测节点故障。
    • 故障转移流程:在节点故障时,自动切换到备份节点,确保服务可用。
扩展功能

RocketMQ提供了一些扩展功能,以增强其功能,以下是其主要技术的实现细节:

  • 消息轨迹:跟踪消息的传递过程。实现细节包括:

    • 消息追踪日志:RocketMQ记录消息的传递过程,生成追踪日志。
    • 跟踪日志分析:对追踪日志进行分析,了解消息传递过程。
  • ACL控制:访问控制列表,控制对消息的访问。实现细节包括:

    • 权限控制:RocketMQ通过权限控制,限制对消息的访问。
    • 访问控制策略:RocketMQ提供多种访问控制策略,如白名单、黑名单等。
  • 多副本机制:提高数据的冗余和可用性。实现细节包括:

    • 副本复制:RocketMQ在多个节点上复制数据,提高数据的冗余。
    • 副本选举:在主节点故障时,从节点进行选举,选择新的主节点。

三、Kafka知识体系

核心组件

Kafka的核心组件包括生产者、消费者和主题,以下是其实现细节:

  • 生产者分区策略:决定消息发送到哪个分区。实现细节包括:

    • 轮询策略:生产者按顺序将消息发送到不同的分区。
    • 随机策略:生产者随机选择一个分区发送消息。
    • 负载均衡策略:生产者根据分区负载情况选择分区发送消息。
  • 消费者组机制:多个消费者共同消费一个主题的消息。实现细节包括:

    • 消费者分配:Kafka根据消费者组分配消息。
    • 消费者偏移量:消费者记录已消费消息的偏移量,确保消息不重复消费。
  • ISR集合:同步副本集合,确保消息的可靠性。实现细节包括:

    • 副本同步:Kafka通过副本同步机制,确保ISR集合中的副本数据一致。
    • 副本选举:在副本发生故障时,Kafka进行副本选举,选择新的副本。
流处理

Kafka支持流处理,以下是其主要技术的实现细节:

  • KStream API:用于构建流处理应用程序。实现细节包括:

    • 流处理操作:KStream API提供丰富的流处理操作,如过滤、聚合、连接等。
    • 状态存储:KStream API支持状态存储,用于持久化状态信息。
  • 状态存储:持久化状态信息。实现细节包括:

    • 状态存储策略:Kafka提供多种状态存储策略,如内存存储、磁盘存储等。
    • 状态恢复:在系统重启或故障恢复时,Kafka可以从状态存储中恢复状态信息。
  • 时间窗口:对消息进行时间窗口划分。实现细节包括:

    • 时间窗口策略:Kafka提供多种时间窗口策略,如固定时间窗口、滑动时间窗口等。
    • 时间窗口计算:Kafka根据时间窗口策略计算消息的时间窗口。
运维监控

Kafka提供运维监控功能,以下是其主要技术的实现细节:

  • 副本同步机制:监控副本同步状态。实现细节包括:

    • 副本同步监控:Kafka监控副本同步状态,确保数据一致性。
    • 异常处理:在副本同步异常时,Kafka进行异常处理,确保服务可用。
  • 日志清理策略:清理旧的日志文件。实现细节包括:

    • 日志清理策略:Kafka提供多种日志清理策略,如按时间、按大小等。
    • 日志清理操作:Kafka定期执行日志清理操作,清理旧的日志文件。
  • JMX指标:通过JMX获取性能指标。实现细节包括:

    • JMX指标配置:Kafka配置JMX指标,将性能指标暴露给JMX客户端。
    • JMX指标查询:JMX客户端查询Kafka的JMX指标,获取性能信息。
生态集成

Kafka与多个生态组件集成,以下是其主要技术的实现细节:

  • Connect连接器:用于数据集成和转换。实现细节包括:

    • 数据源连接:Connect连接器支持多种数据源连接,如数据库、文件等。
    • 数据转换:Connect连接器支持数据转换,将数据从一种格式转换为另一种格式。
  • Schema Registry:管理数据模式。实现细节包括:

    • 模式存储:Schema Registry存储数据模式,用于数据集成和转换。
    • 模式版本控制:Schema Registry支持数据模式版本控制,确保数据格式一致性。
  • KSQL引擎:用于SQL查询Kafka数据。实现细节包括:

    • SQL查询:KSQL支持SQL查询Kafka数据,如过滤、聚合等。
    • 查询执行:KSQL执行SQL查询,返回查询结果。

优快云

📥博主的人生感悟和目标

Java程序员廖志伟

希望各位读者大大多多支持用心写文章的博主,现在时代变了,信息爆炸,酒香也怕巷子深,博主真的需要大家的帮助才能在这片海洋中继续发光发热,所以,赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

- 💂 博客主页: Java程序员廖志伟
- 👉 开源项目: Java程序员廖志伟
- 🌥 哔哩哔哩: Java程序员廖志伟
- 🎏 个人社区: Java程序员廖志伟
- 🔖 个人微信号: SeniorRD

Java程序员廖志伟

📙经过多年在优快云创作上千篇文章的经验积累,我已经拥有了不错的写作技巧。同时,我还与清华大学出版社签下了四本书籍的合约,并将陆续出版。这些书籍包括了基础篇、进阶篇、架构篇的📌《Java项目实战—深入理解大型互联网企业通用技术》📌,以及📚《解密程序员的思维密码--沟通、演讲、思考的实践》📚。具体出版计划会根据实际情况进行调整,希望各位读者朋友能够多多支持!

🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

Kafka、rabbitmq及rocketmq的区别 Kafka采用拉取(pull)方式消费消息,吞吐量相对更高,适用于海量数据收集与传递场景,通常用于日志采集和集中分析。 RabbitMq在吞吐量方面略有逊色,但支持更多的消息队列功能。 RocketMQ出自 阿里公司的开源产品,用java语言实现。在设计时参考了Kafka,并且做出了自己的一些改进。在阿里集团被广泛应用于订单、交易充值、消息推送、日志流式处理、binglog分发等场景。 以下分别从性能、数据可靠性、服务可用性、功能等方面进行具体分析 性能: QPS:吞吐量 Broker:.. 阅读详情

相关推荐

RabbitMQ/RocketMQ/Kafka 消息顺序

RabbitMQ RabbitMQ 无法做到消息有序的原因: RabbitMQ支持一个队列多个消费者进行消费,并行处理消息无法保证顺序。 RabbitMQ支持重试及超时重试机制,这也是导致无法顺序消费的原因(即使只有一个队列一个消费者 )。 RocketMQ RabbitMQ 实现顺序消费: 需要有序的消息投入相同的队列,同时只有一个线程消费(但这个也无法100%解决,重试机制是个坑)。 RocketMQ只能保证消息的局部有序,无法保证全局有序。 RocketMQ 提供两种消费

H_L_S的专栏 1560

RabbitMQ相关知识

RabbitMQ是一个消息中间件,进行消息的传输和交互,主要用于解决分布式系统中等问题。

m0_63243718的博客 853

绿盾注册机 使用手册

在很多涉及工程设计的单位(如建筑、模具、电路、广告等),电子图纸的应用极为普遍,而电子图纸的丢失、被盗对企业利益的影响是显而易见的,如果被竞争对手获取,甚至可能造成致命的打击。因此,对于这类企业,电子图纸的保密显得至关重要。绿盾信息安全管理软件充分考虑了电子图纸的各种可能传播途径,制定了针对性的解决方案,从而保证了电子图纸的安全。 我们总结了电子图纸的各种传播途径以及相应的对策,有如下几点:

999

【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

一文详解三大MQ,RabbitMQ、RocketMQ、Kafka,各自的使用、原理和适用场景。

BugMan的博客 2万+

Python大数据舆情分析系统开发实战

舆情监测系统是大数据分析的重要应用场景,通过自然语言处理(NLP)技术解析社交媒体文本情感倾向。基于Python技术栈的解决方案整合了Scrapy爬虫框架进行数据采集,PySpark处理海量文本数据,结合SnowNLP和Jieba实现中文语义分析。系统采用微服务架构设计,包含数据采集层、处理层、存储层和应用层,通过情感分析优化和实时热点检测算法提升监测准确率。典型应用包括企业品牌监测、公共事件预警等场景,开发过程中需特别注意数据合规性和分布式集群的性能调优。

weixin_34408624的博客 388

疾病负担研究(GBD)介绍

今天我们来聊一聊第一个公共数据库——GBD数据库,全称叫做global burden of disease(全球疾病负担),该数据库每年都会更新,目前已经更新到GBD2019。 这里直接给大家贴出网址:Global Burden of Disease Study 2019 (GBD 2019) Data Resources | GHDx 上图中红色圈圈标识的就是数据库的数据获取界面的链接,大家直接点击即可. 数据的检索十分方便: Context下拉菜单中可以选择不同的选项,默认是caus

weixin_44240228的博客 1万+

RabbitMQ、RocketMQ 和 Kafka 的区别(超级详细)

综上所述,RabbitMQ 因其灵活的消息模型和低延迟,在对消息处理灵活性和即时性要求高的场景中表现出色;RocketMQ 凭借高吞吐量、低延迟以及对事务和顺序消息的良好支持,在电商、金融等大规模且对消息可靠性和顺序性要求严格的领域应用广泛;Kafka 则在大数据实时处理、日志采集与分析等需要处理海量数据和高吞吐量的场景中具有明显优势。在选择使用时,需根据具体业务场景的需求、性能要求、数据规模以及技术团队的能力和经验等因素综合考量,从而确定最适合的消息队列系统。

callback_优快云的博客 2905

SD--根据订单创建出库单(相关的函数列表的介绍系列篇(2))

创建订单样例代码参见:http://blog.youkuaiyun.com/CompassButton/archive/2007/05/09/1601712.aspx 可以根据一个订单或者部分订单项来创建出库单,代码如下:* Populating the item data lx_sales_item-ref_doc = l_vbeln. lx_sales_item-ref_item = c_000010

SAP BLOG--Jack Wu 6227

MQ选型:ActiveMQ、RocketMQ、RabbitMQ、Kafka对比

关于ActiveMQ、RocketMQ、RabbitMQ、Kafka一些总结和区别 本文大概围绕如下几点进行阐述: 为什么使用消息队列? 使用消息队列有什么缺点? 消息队列如何选型? 如何保证消息队列是高可用的? 如何保证消息不被重复消费? 如何保证消费的可靠性传输? 如何保证消息的顺序性? 我们围绕以上七点进行阐述。需要说明一下,本文不是《消息队列从入门到精通》这种课程,...

老树的技术博客 2万+

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。

TxNet 1752

【人工智能 Open AI】程序员怎样提升研发效率?从技术、业务、项目管理等等多个方面来阐述。

程序员要想提升研发效率,需要从技术、业务、项目管理等多方面着手,多靠工具配合实践实现,从而提升研发效率。

AI天才研究院 5529

RabbitMQ 知识点总结

消息队列 MQ 的相关概念 什么是 MQ MQ = Message Queue = 消息队列 消息队列:存放内容是消息的 FIFO(先入先出) 队列。是一种跨进程的通信机制,用于上下游传递消息。 为什么要用 MQ ? 1、流量消峰 举个例子,假如一个系统一秒最多可以处理一万次订单,这个处理能力在正常时段是绰绰有余的。但是在高峰的时候(例如双十一),一秒钟能达到两万次请求,这时候系统是处理不了这么多的,传统的方法是限制当请求超过一万之后不允许用户下单。而使用消息队列的话可以做为缓冲,把一秒内处理的订单分成一段

Jack·Kwok的博客 2271

MATLAB 与 STK 互联导出导弹轨迹及速度数据(csv导出)

本文介绍了如何通过 MATLAB 脚本连接 STK 提取导弹三维轨迹数据,并以 CSV 格式导出,包含以下关键内容:自动连接 STK 场景;获取所有导弹对象;提取 J2000 坐标系下的位置和速度;加入任务优先级与状态;导出为标准 CSV 文件;

weixin_52370774的博客 781

消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+知识大纲+面试刷刷刷+查漏笔记!

最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了。额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka等的纯手绘知识体系图、面试以及相关的学习笔记。 为了更好的梳理相关知识,咱们先看纯手绘知识体系图 1.1 Kafka知识体系大纲 由于我手绘这些知识体系大纲是用的xmind软件,无法上传,所以都以截图的形式展示,细节处不清楚(毕竟图片形式有限),不过可以免费提供原..

mifffy_java的博客 695

大语言模型与ROS集成的自然语言机器人控制:开源框架与应用实例

近年来,大语言模型(LLM)与机器人操作系统(ROS)的集成逐步成熟,使得自然语言驱动的机器人控制成为可能。用户输入“捡起绿色方块”或“把微波炉里的饭热好端过来”这类日常语句,机器人能够自动拆解步骤、规划动作并执行。本文梳理2026年前后发布的三个代表性开源框架——ROS-LLM、ROSClaw以及LLM+Nav2基准测试系统,介绍其技术路径与工程落地情况。

Studying…… 634

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

面试惨败MQ?献上消息中间件解析合集:MQ+Kafka,助你吊打面试官!

关于消息中间件MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka,小编从每个的知识体系大纲开始,进行知识唤醒与梳理,然后再去刷刷各大面试高频题(附有详细的答案),最后在知识出现纰漏时尽快弥补(查找学习笔记)。需要文中资料完整版学习的小伙伴可以点击下方的名片自取!

m0_73311735的博客 111

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Kafka、RocketMQ、RabbitMQ的比较总结

​ 最近学习了Kafka、RocketMQ、RabbitMQ三款消息中间件的原理,本文主要是记录一下Kafka、RabbitMQ、RocketMQ三款中间件之间的区别。下面先对各自的架构进行简单的介绍,然后详细对比一下他们之间的关键不同点。由于学习时间和个人水平有限,文中错误之处在所难免,敬请指正。 Kafka简介 Producer:生产者,向Kafka集群(Broker)中发送消息 Consumer:消费者,从Kafka集群中(Broker)消费消息 Zookeeper: Zookeeper集群,用来管

weixin_38002497的博客 2万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RabbitMQ、RocketMQ 、Kafka区别

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。

一个喜欢诗和远方的程序媛 6690

Kafka 与 RabbitMQ、RocketMQ 有何不同?

Kafka 像日志系统,RabbitMQ 像消息代理,RocketMQ 像交易管家 —— 各自擅长领域不同,不能简单替代,只有合适不合适,没有好与不好。RocketMQ 的设计天生支持事务、顺序与高可用,但学习曲线更陡。⭐⭐⭐⭐(需熟悉分区、副本、ISR、Controller)RabbitMQ “路由灵活”,但并不天然支持顺序语义。支持 Java/C++/Python,但 Java 最佳。阿里电商“双11”场景演进而来,强调事务、安全和可控性。高,Spring Kafka / Flink 支持丰富。

小健学Java的博客 3405

Kafka、RocketMQ 、RabbitMQ 是什么?

说白了,它其实是个链表,链表的每个节点就是一个消息。每个节点有一个序号,我们叫它Offset,记录消息的位置。服务依据自己的处理能力,消费链表里的消息。能处理多少是多少,不断更新已处理 Offset 的值。但这有个问题,来不及处理的消息会堆积在内存里,如果服务更新重启,这些消息就都丢了。这个好解决,将队列挪出来,变成一个单独的进程。就算服务重启,也不会影响到了队列里的消息。这样一个简陋的队列进程,其实就是所谓的消息队列。负责发数据到消息队列的角色,就是生产者,处理消息的角色,就消费者。

2301_80713863的博客 2030

rabbitmq、kafka、rocketMQ区别和选择

文章目录rabbitMQ和kafkakafka和rocketMQrabbitMq和rocketMQMQ选型消息队列常使用的注意事项如何保证系统的高可用如何保证消息不会丢失rabbitmqrocketMq rabbitMQ和kafka 语言 kafka使用scala写的,kafka使用erlang写的,rocketMQ使用java写的 消费模型 RabbitMQ中pull和push都有实现,kafka和rocketMQ中只有pull 架构组成 rabbtmq是基于AMQP协议开发,broker由e

Emine 6374

Kafka、RocketMQ、RabbitMQ 对比

Kafka、RocketMQ、RabbitMQ 对比

dzend的专栏 2030

RabbitMQ/RocketMQ/Kafka 比较分析

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 915
上一篇: 并发编程核心知识
下一篇: Redis核心技术解析
Java开发廖志伟
博客等级 码龄2年 3491粉丝 1534原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值