作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择 RabbitMQ 还是 Kafka?”
基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择 RabbitMQ 还是 Kafka 没什么差别,但是这两种技术在底层实现方面是有许多差异的。
不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。
这篇文章会先介绍 RabbitMQ 和 Apache Kafka 内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们会说明一下怎样选择这两种技术。
《一线大厂 Java 面试真题解析+Java 核心总结学习笔记+最新全套讲解视频》,
“添加助理微信:lxmtim 即可免费领取!
Kafka 源码篇——Kafka 快速入门
1.1Kafka 简介

1.2 以 Kafka 为中心的解决方案

1.3 Kafka 核心概念

1.4 搭建 Kafka 源码环境

Kafka 源码篇——生产者
2.1 KafkaProducer 使用示例

2.2 KafkaProducer 分析

2.3 RecordAccumulator 分析

2.4 Sender 分析

Kafka 源码篇——消费者
3.1 KafkaConsumer 使用示例

3.2 传递保证语义(Delivery guarantee semantic )

3.3 Consumer Group Rebalance 设计

3.4 KafkaConsumer 分析

Kafka 源码篇——Kafka 服务端
4.1 网络层

4.2API 层

4.3 日志存储

4.4 DelayedOperationPurgatory 组件

4.5 副本机制

4.6 KafkaController

4.7 GroupCoordinator

4.8 身份认证与权限控制

4.9Kafka 监控

Kafka 源码篇——Kafka Tool
5.1 kafka-server-start 脚本

5.2kafka-topics 脚本

5.3 kafka-preferred-replica-election 脚本

5.4 kafka-reassign-partitions 脚本

5.5 kafka-console-producer 脚本

5.6 kafka-console-consumer 脚本

5.7 kafka-consumer-groups 脚本

5.8 DumpLogSegments

5.9 kafka-producer-perf-test 脚本

5.10 kafka-consumer-perf-test 脚本

5.11 kafka-mirror-maker 脚本

Kafka 的设计与实现
讨论一:Kafka 存储在文件系统上

讨论二:Kafka 中的底层存储设计

讨论三:生产者设计概要
讨论四:消费者设计概要

讨论五:Kafka 如何保证可靠性

最后
文章中涉及到的知识点我都已经整理成了资料,供大家下载学习,诚意满满,希望可以帮助在这个行业发展的朋友,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。