请看下图.它显示了Kafka的集群图.
以下表描述了上图中显示的每个组件.
S.No | 组件和描述 |
---|---|
1 | Broker Kafka集群通常包括多个Broker以维持负载平衡. Kafka代理是无状态的,因此他们使用ZooKeeper来维护其集群状态.一个Kafka代理实例每秒可以处理数十万次读写操作,每个兄弟可以处理TB消息而不会影响性能.卡夫卡Broker领袖选举可以由ZooKeeper完成. |
2 | ZooKeeper ZooKeeper用于管理和协调Kafka经纪人. ZooKeeper服务主要用于通知生产者和消费者Kafka系统中任何新代理的存在或Kafka系统中代理的故障.根据Zookeeper收到的关于经纪人存在或失败的通知,然后生产者和消费者做出决定并开始与其他经纪人协调他们的任务. |
3 | 生产者 生产者将数据推送给经纪人.当新代理启动时,所有生产者都会搜索它并自动向该新代理发送消息. Kafka生产者不等待经纪人的确认,并且发送消息的速度与经纪人可以处理的速度一样快. |
4 | 消费者 由于Kafka经纪人无国籍,这意味着消费者必须通过使用分区偏移来维护消耗了多少消息.如果消费者确认特定的消息偏移,则意味着消费者已经消耗了所有先前的消息.消费者向代理发出异步拉取请求,以准备好消耗的字节缓冲区.消费者可以通过提供偏移值来回退或跳转到分区中的任何点. ZooKeeper通知消费者抵消价值. |