kafka资源进行物理隔离

实际场景

在创建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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,755评论 13 425
  • 一、为什么需要消息系统 1.解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2.冗余...
    为你变乖_09e6阅读 882评论 0 8
  • 1 概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Sc...
    流浪冰007阅读 1,808评论 0 6
  • 人生啊 就是尝遍所有味道的糖果啊 不管甜的还是酸的 你总要去尝试
    bad_阅读 216评论 0 0
  • 踏过铺满灰尘的街道 来到一座荒芜的城堡 棕褐色的,墨绿色的藤蔓亲昵地交缠着 玫瑰寂寞的在风中舞动 远方教堂的钟声响...
    不过花开阅读 292评论 0 1