限制kafka主题分区仅在部分经纪人上分发

时间:2019-05-07 08:09:36

标签: apache-kafka

对于多租户kafka集群,我想控制指定kakfa代理上的Topic分区分配。例如,主题A可以位于代理1,代理2上;并且主题B可以位于Broker-3,broker-4上。

kafka有这种机制吗?例如,我们可以为代理和主题设置标签吗,只能将具有相同标签的主题放在代理上。

1 个答案:

答案 0 :(得分:1)

是的,这是配置主题的一部分。来自docs

  

分布日志的分区分布在   Kafka群集中的服务器,每个服务器处理数据和   请求共享分区。每个分区被复制   跨可配置数量的服务器进行容错。

     

每个分区都有一个充当“领导者”的服务器,零或   更多充当“追随者”的服务器。领导者处理所有阅读和   跟随者被动地写入分区请求   复制领导者。如果领导者失败,则跟随者之一将   自动成为新的领导者。每个服务器都充当领导者   它的一些分区和其他分区的跟随者,因此负载很好   在集群中保持平衡。

您可以指定分区和副本的数量,Kafka将分发它们,或者您可以指定分区/副本的位置。

#non manual assignment example
bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic topic1 --replication-factor 2 --partitions 123

来自replication tools

# Create topic with manual replica assignment
bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic topic1 --replica-assignment 0:1:2,0:1:2,0:1:2