kafka之主题操作kafka-topics命令

创建Kafka的Tiopic

kafka-topics.bat --create -zookeeper localhost:2182 --replication-factor 2 --partitions 3 --topic testMcdull222

--create 创建主题

--topic 主题名称

-zookeeper zookeeper集群地址

--replication-factor  每个分区副本因子个数即每个分区有多少副本

--partitions  主题partition数量

--replica-assignment 不能同时使用--partitions --replication-factor参数。指定partition的AR列表,未指定AR列表则会根据负载均衡算法将partition的replica均衡的分布在Kafka集群中。--replica-assignment 1:3,2:1,3:2,逗号区分不同的partition,冒号区别相同partition中的replica,partition-0的AR=[1,3],partition-1的AR=[2,1],partition-2的AR=[3,2]。testMcdull222AR列表计算出来时--replica-assignment 2:3,1:3,1:2 。

第一个broker

第二个broker

第三个broker

--replica-assignment 参数一般不由用户指定,由Kafka默认分配算法保证,有两个原则:

(1)使Topic的所有Partition Replica能够均匀地分配至各个Kafka Broker(负载均衡);

(2)Partition 内的replica能够均匀地分配在不同Kafka Broker。如果Partition的第一个Replica分配至某一个Kafka Broker,那么这个Partition的其它Replica则需要分配至其它的Kafka Brokers,即Partition Replica分配至不同的Broker;

1、从Broker随机位置开始按照轮询方式选择每个Partition的第一个replica

2、不同Partition剩余replica按照一定的偏移量紧跟着各自的第一个replica

指定--replica-assignment参数相当于指定了分区数、副本数。

kafka-topics.bat --create -zookeeper localhost:2182 --topic testMcdull222666 --replica-assignment 1:3,2:1,3:2

第一个broker

第二个broker

第三个broker

查看Kafka中Topic

kafka-topics.bat --zookeeper localhost:2183 --list

展示Topic详细信息

kafka-topics.bat --zookeeper localhost:2183 --describe --topic testMcdull

删除Topic

kafka-topics.bat --zookeeper localhost:2183 --delete --topic testMcdull222333

如果kafaka启动时加载的配置文件中server.properties没有配置"delete.topic.enable=true",那么此时的删除并不是真正的删除,而是把topic标记为删除:marked for deletion。或者直接从Zookeeper中删除。

彻底删除topic方式

 1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

 2、如果配置了delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉broker下的topic即可。

从Zookeeper中删除

(1)登录zookeeper客户端:命令:./bin/zookeeper-client

(2)找到topic所在的目录:ls /brokers/topics

(3)找到要删除的topic,执行命令:rmr /brokers/topics/topicName即可,此时topic被彻底删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值