【发布时间】:2019-01-08 16:40:48
【问题描述】:
为集群中的所有节点运行相同的生产者和消费者代码有什么缺点吗?如果集群中有 8 个节点(8 个消费者、8 个 kafka 代理和 8 个生产者),那么集群中会同时运行 8 个生产者吗?有没有办法修改集群以便一次只运行一个生产者?
【问题讨论】:
标签: apache-kafka kafka-producer-api
为集群中的所有节点运行相同的生产者和消费者代码有什么缺点吗?如果集群中有 8 个节点(8 个消费者、8 个 kafka 代理和 8 个生产者),那么集群中会同时运行 8 个生产者吗?有没有办法修改集群以便一次只运行一个生产者?
【问题讨论】:
标签: apache-kafka kafka-producer-api
Kafka 集群只不过是在分布式共识下运行的 Kafka 代理。 Kafka 集群不知道围绕它运行的生产者和消费者的数量。生产者和消费者是 Kafka 集群的客户端。生产者将数据流式传输到 Kafka,消费者使用来自 Kafka 的数据。在 Kafka 集群中,数据将分布在主题中。主题使用分区进行分片。如果多个消费者属于同一个消费者组,消费者可以以自愈方式工作。
有没有办法修改集群,以便只有一个生产者在 时间?
如果您打算在某个时间点运行单个生产者,则无需在集群内进行任何更改。
【讨论】:
为集群中的所有节点运行相同的生产者和消费者代码有什么缺点吗?
这里的主要缺点是可扩展性和内存使用。
生产者和消费者不需要在代理上运行。生产者应该部署在生成数据的地方(或作为单独的主机运行,如 Kafka Connect 工作人员)。
应根据您在下游系统中所需的吞吐量和订购保证独立扩展消费者。
没有什么说 8 个经纪人需要 8 个生产者和 8 个消费者;分区更重要
运行单个生产者是您自己的代码的实现。经纪人不能强迫它。
【讨论】: