美文网首页数客联盟
kafka资源进行物理隔离

kafka资源进行物理隔离

作者: Woople | 来源:发表于2018-09-11 17:30 被阅读26次

    实际场景

    在创建kafka的topic时,一般会指定partition以及其副本数,kafka会自动将这些partiton分配到不同的broker上。但是有时候想对每个topic使用的机器进行物理隔离,也就是说,某个topic只能使用kafka集群中的某些broker机器。这样就把每个topic需要的资源从broker级别进行了隔离。

    实现方式

    在创建topic的时候可以指定replica-assignment参数。本文基于HDP 2.5.0.0-1245版本。

    1. 查看每个broker的id,登录zk在/brokers/ids中记录了所有broker的id,通过get命令,例如get /brokers/ids/1008可以知道id对应的host

    2. 创建topic的时候加上replica-assignment参数,后面的值用逗号分隔每个partition,每个partition中冒号分隔副本所在的broker。例如通过下面的命令创建一个topic。

    ./kafka-topics.sh --zookeeper hostA:2181  --create --topic xt0 --replica-assignment 1008:1001,1007:1002
    
    1. 参看创建之后的partition分布,partition0的leader是1008,副本在1008和1001,partition1也是和预期的一致。
    ./kafka-topics.sh --describe --zookeeper hostA:2181 --topic xt0
    
    Topic:xt0       PartitionCount:2        ReplicationFactor:2     Configs:
            Topic: xt0      Partition: 0    Leader: 1008    Replicas: 1008,1001     Isr: 1008,1001
            Topic: xt0      Partition: 1    Leader: 1007    Replicas: 1007,1002     Isr: 1007,1002
    

    相关文章

      网友评论

        本文标题:kafka资源进行物理隔离

        本文链接:https://www.haomeiwen.com/subject/sqgugftx.html