一、定义
kafka是一种分布式的,基于发布/订阅的消息队列
二、使用场景
- 缓存/消峰:将数据放入消费队列中,然后慢慢消费
- 解偶:允许独立扩展或者修改两边
- 异步通信: 可以不立即处理
三、模式
1、点对点模式
2、发布/订阅模式
(1)、可以有多个Topic主题
(2)、消费后不会删除数据
(3)、每个消费者独立,都可以消费数据(一个Topic中的数据,可以重复被不同消费者消费)
四、基本架构
1、为了方便扩展,并提高吞吐量,一个Topic分为多个Partition
2、分区设计,使用消费者组,组内多个消费者并行消费(一个分区只能被一个消费者消费)
3、为提高可用性,一个Partition有若干副本(最少一个)
4、使用Zookeeper记录集群信息(2.8.0后可以不使用zk)