kafka原理和高可用
Apache Kafka 是一个开源的分布式事件流平台 (Distributed Event Streaming Platform)。
忘掉 “ 消息队列 “ 这个狭隘的标签。虽然它能当消息队列用,但这好比说一台 MacBook Pro 只是个打字机。它的核心是一个分布式的、分区的、可复制的、持久化的提交日志 (Commit Log)。数据被 “ 追加 “ 到日志末尾,并且可以被多个消费者在任意时间点、以任意速度重复读取。
一句话类比: Kafka 就像一个拥有无数个频道的、永不停止的数字电视台。
- 电视台 (Kafka Cluster): 整个服务系统。
 - 频道 (Topic): 数据的分类,比如 “ 订单频道 “、” 用户行为频道 “。
 - 节目 (Message/Event): 一条条的数据,比如 “ 用户 A 下单 “、” 用户 B 点击了按钮 “。
 - 节目制作方 (Producer): 负责制作节目并发送到指定频道。
 - 电视观众 (Consumer): 订阅自己感兴趣的频道。
 - 电视节目录像机 (Log & Offset): 电视台会把所有节目按顺序录下来(持久化日志)。每个观众都有自己的进度条(Offset),可以从任何时间点开始看、快进、甚至倒带重看(数据回溯),且每个观众的观看进度互不影响。
 

