"单表分机"带来的好处:(核心概念):broker->topic->partion Partition 数 = Broker 数 × N(N 不宜过大,通常 2-10)
-
存储扩展:单机存不下 → 分散到多机存储 ✅
-
性能提升:多机并行读写 → 吞吐量翻倍 ✅
-
负载均衡:请求分散到多台机器 → 不会单机过载 ✅
一句话总结:
-
Redis = 快速访问、临时存储、简单任务
-
Kafka = 可靠传输、持久存储、复杂流处理
背景
Kafka 的用途
Kafka 是一个分布式流式数据平台(Distributed Streaming Platform),主要用于:
1. 消息队列(Message Queue)
- 在不同服务之间传递消息
- 解耦生产者和消费者
- 异步处理任务
2. 事件流处理(Event Streaming)
- 实时处理和分析数据流
- 追踪用户行为、系统日志等
- 构建事件驱动架构
3. 数据管道(Data Pipeline)
- 在不同系统间同步数据
- 实时数据集成
- 日志聚合
安装
brew install kafka
启动
查看 kafka 版本
kafka-topics --version
4.1.0 // output
发现是 4.x
注意:kafka 2.8 以前需要 zookeeper,之后,4.x 可以独立启动,如下:
1. 生成集群 UUIDkafka-storage random-uuid
这会输出一个 UUID,例如:J7s9-xQJT1Sx4Lb5Vj2YTg
2. 格式化存储目录
使用生成的 UUID 格式化存储目录(将 替换为上一步生成的实际 UUID):
kafka-storage format -t -c /opt/homebrew/etc/kafka/kraft/server.properties
例如:
kafka-storage format -t J7s9-xQJT1Sx4Lb5Vj2YTg -c /opt/homebrew/etc/kafka/kraft/server.properties
3. 启动 Kafka
格式化完成后,再启动 Kafka:
kafka-server-start /opt/homebrew/etc/kafka/kraft/server.properties