原理
producer:生成者,向broker中发布消息
Broker:服务器,一台服务器可以视为一个broker,众多的broker构成集群
Topic:按照redis来说,有点类似频道,即发布消息的队列名称
Partiton:分区,每个topic包含1个到多个topic,就mongodb来说,在kafka中,分区的上一层是topic
Consumer:消费者,从broker的partition中pull数据
Controller:进行leader选择及faliover的维护
zookeeper管理broker,consumer;kafka将元数据信息保存在zookeeper中,但是发送给topic本身的数据是不会发给zk上的。kafka使用zk来实现动态的集群扩展,不需要更改客户端(producer和consumer)的配置。broker会在zk注册并保持相关的元数据更新。