消息队列 Kafka 是什么?
Apache1 Kafka2 is an open-source distributed event streaming3 platform.
分布式事件流平台 Kafka 目前主要应用场景是:日志收集系统和消息系统4,可简单理解为消息队列的一种实现框架。
该视频5简单快速地回答了以下几个问题:
- 消息队列是什么
- 队列:缓存待处理消息的队列(数据结构)
- 进程:抽离成单独进程(解耦)
- 消息队列中的 生产者/消费者 (Producer/Consumer)
- 高性能:提高消息队列的吞吐量6
- 增加生产者和消费者
- 解决队列争抢问题
- topic
- partition
- 扩展性:broker 代表具体部署了 partion 的机器
- 高可用:解决 broker 当机的数据丢失
- 解决某个 broker 当机问题:给 partition 增加副本(replicas,leader/follower)
- 解决 broker 集群挂掉的问题:持久化和过期策略(retention policy)
- Consumer Group
- 每个消费者组维护自己的队列消费情况:方便消费者加入或退出
- ZooKeeper
- 定期和 broker 通信,获取整个 Kafka 集群的状态
- 消息队列 Kafka 起到对流量削峰填谷作用
Kafka 术语
kafka broker
kafka topic
kafka partition
kafka replica
kafka producer/consumer
kafka consumer group
kafka controller
常用 MQ 对比
- RabbitMQ
- RocketMQ
- Kafka