生产者和消费者是否需要指定分区

时间:2016-02-24 03:44:40

标签: apache-kafka kafka-consumer-api kafka-producer-api

我们计划有一个制作人(Java rest api) 在多台机器上运行的消费者(Java客户端)和所有消费者都属于同一个消费者群体。

1)在这种情况下,如果我没有在生产者发布消息期间指定分区,其中Kafka写入随机/默认分区......

2)当消费者检索消息时,如果我没有提及分区I并且只是传递主题名称..并将偏移量提交给Kafka服务器..

如果我有一个消费者群体,这是一个好方法吗???

3)我是否需要拥有Kafka休息代理,根据我的理解,我不需要使用Java客户端..如果我错了,请纠正我...请lemme知道如果我必须在这里使用Kafka rest代理我会得到什么好处....

1 个答案:

答案 0 :(得分:3)

从生产者的角度来看,如果记录没有任何密钥,则生产者将在主题的分区之间以循环方式插入记录。 从消费者的角度来看,如果任何消费者可以处理来自该主题的任何记录,则不需要指定分区,如果您实际上甚至不需要提交偏移量,则客户端可以执行此操作你auto.commit.enable=true

是的,如果您有1个使用者组,则可以添加多个使用者并平衡组之间的负载(这取决于组中的使用者数量和分区数量)。

3)在使用java客户端时你不需要kafka rest代理,除此之外(如果我没有记错)kafka rest代理依赖于架构注册表,所以你必须同时运行它们。