参考Kafka教程:blog.csdn.net/hellozpc/ar…
1 Kafka是分布式流处理平台,拥有高吞吐、低延迟的特性。通常具备三重角色:
- 消息系统
- 流处理平台
- 存储系统
2 Kafka体系结构
- 多个Producer(生产者):将消息发送到kafka服务器(broker)中
- 多个Consumer(消费者):消费者客户端主动从kafka服务器上拉取(pull)到消息
- 多个Broker(Kafka服务器):生产者客户端和消费者客户端进行连接,消息的中转站。多个Broker组成kafka集群
- 一个zookeeper集群:kafka集群中负责管理元数据、控制器选举等操作的分布式协调器
3 主题(Topic)、分区(Partition)、副本(Replica)、消费组
- Topic:kafka中消息是topic为单位进行归类的。生产者将消息发送到指定的topic,消费者负责订阅主题并进行消费。
- Partition:kafka中一个topic可以分为多个partition,每个分区通常以分布式的方式存储在不同的机器上。一个特定的分区只属于一个主题,因此,主题可以通过分区的方式跨过多个broker。
- Replica:副本存在于broker中,当leader副本出现故障时,从follower副本中重新选择新的leader副本对外提供读写工作。kafka通过多副本机制,实现了故障的自动转移。当kafka集群中某个broker挂掉时,副本机制保证该节点上的partition数据不丢失,仍然能保证kafka服务能使用
- 消费组:消费者组是逻辑上的订阅者,生产者发布消息到topic,只会被投递给订阅该主题的每个消费组中的一个消费者,消费组中的每个消费者负责消费不同分区的数据,一个分区只能由一个消费组里消费者消费,多个不同消费者组可以同时订阅一个topic。此时消息会被每个消费者组中的一个消费者消费。
3 Kafka文件存储机制
- kafka高效读写的原因
- 顺序写磁盘技术
- 零拷贝