卡夫卡的生产者,消费者,经纪人都在同一主机上?

时间:2019-01-08 16:40:49

标签: apache-kafka kafka-producer-api

为集群中的所有节点运行相同的生产者和使用者代码是否有负面影响?如果集群中有8个节点(8个消费者,8个kafka代理和8个生产者),那么集群中是否有8个生产者同时运行?有没有一种方法可以修改集群,以便一次只运行一个生产者?

2 个答案:

答案 0 :(得分:1)

Kafka集群不过是在分布式共识下运行的Kafka经纪人。 Kafka集群不了解围绕它运行的生产者和消费者的数量。生产者和消费者是Kafka集群的客户。生产者将向Kafka传输数据,而消费者则从Kafka消费数据。在Kafka集群内,数据将在主题内分布。使用分区对主题进行分片。如果多个消费者属于同一消费者组,则消费者可以自我修复的方式工作。

  

有没有一种方法可以修改群集,以便只有一个生产者可以在群集中运行   时间?

如果您打算在某个特定时间运行单个生产者,则无需在集群中进行任何更改。

答案 1 :(得分:0)

  

为集群中的所有节点运行相同的生产者和使用者代码是否有不利之处?

此处的主要缺点是可伸缩性和内存使用情况。

生产者和消费者不需要在经纪人上运行。生产者应部署在生成数据的地方(或作为独立的主机运行,例如Kafka Connect工作者)。

应该根据下游系统中需要的吞吐量和订购保证来独立扩展消费者。

没有什么可以说8个经纪人需要8个生产者和8个消费者。分区更重要

  • 如果一个主题中有N个分区,则无论如何都只能扩展到N个活跃的消费者,并且无限多个生产者。
  • 8个经纪人可以为任何给定主题保留很多分区

运行单个生产者是您自己的代码的实现。经纪人不能强迫它。