【问题标题】:Kafka Producer, Consumer, Broker in same host?同一主机中的 Kafka 生产者、消费者、代理?
【发布时间】:2019-01-08 16:40:48
【问题描述】:

为集群中的所有节点运行相同的生产者和消费者代码有什么缺点吗?如果集群中有 8 个节点(8 个消费者、8 个 kafka 代理和 8 个生产者),那么集群中会同时运行 8 个生产者吗?有没有办法修改集群以便一次只运行一个生产者?

【问题讨论】:

    标签: apache-kafka kafka-producer-api


    【解决方案1】:

    Kafka 集群只不过是在分布式共识下运行的 Kafka 代理。 Kafka 集群不知道围绕它运行的生产者和消费者的数量。生产者和消费者是 Kafka 集群的客户端。生产者将数据流式传输到 Kafka,消费者使用来自 Kafka 的数据。在 Kafka 集群中,数据将分布在主题中。主题使用分区进行分片。如果多个消费者属于同一个消费者组,消费者可以以自愈方式工作。

    有没有办法修改集群,以便只有一个生产者在 时间?

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

    【讨论】:

      【解决方案2】:

      为集群中的所有节点运行相同的生产者和消费者代码有什么缺点吗?

      这里的主要缺点是可扩展性和内存使用。

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

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

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

      • 如果您在一个主题中有 N 个分区,那么无论如何您只能扩展到 N 个活跃的消费者,以及无限多个生产者
      • 8 个代理可以为任何给定主题保存大量分区

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

      【讨论】:

        猜你喜欢
        • 2018-01-07
        • 2018-12-18
        • 1970-01-01
        • 1970-01-01
        • 2015-03-25
        • 2019-05-09
        • 1970-01-01
        • 2017-12-18
        • 2019-12-31
        相关资源
        最近更新 更多