kafka中关于主题的命令
Posted java架构师-太阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka中关于主题的命令相关的知识,希望对你有一定的参考价值。
01 创建
创建主题------单机时副本要为1,因为多个副本不能在一台服务器上,replication factor是副本因为,是每个分区总副本数
kafka-topics.sh --zookeeper localhost:2181/myKafka --create --topic topicName --partitions 3 --replication-factor 1
创建修改默认配置的主题
kafka-topics.sh --zookeeper localhost:2181/myKafka --create --topic topicName --partitions 3 --replication-factor 1 --config max.message.bytes=1048576 --config segment.bytes=10485760
02 查询
显示所有主题
kafka-topics.sh --zookeeper localhost:2181/myKafka --list
查看指定主体详细信息
kafka-topics.sh --zookeeper localhost:2181/myKafka --describe --topic topicName
Topic: topicName4 Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: topicName4 Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: topicName4 Partition: 2 Leader: 0 Replicas: 0 Isr: 0
如果有多个分区,每一行为一个分区,第一列是主题名字,第二列是分区编号,第三列是Leader副本在哪个broker.第四列是副本在那个broker上,第五列是Isr在哪个broker上
查看覆盖了默认设置的主题并显示覆盖的配置
kafka-topics.sh --zookeeper localhost:2181/myKafka --topics-with-overrides --describe
03 修改主题
增加配置
kafka-topics.sh --zookeeper localhost:2181/myKafka --alter --topic topic_test_01 --config max.message.bytes=1048576
删除配置
kafka-topics.sh --zookeeper localhost:2181/myKafka --alter --delete-config max.message.bytes --topic topic_test_01
增加分区—分区数不能减少,因为有数据转移等复杂内容
kafka-topics.sh --zookeeper localhost/myKafka --alter --topic topicName --partitions 4
04 删除
删除指定主体
kafka-topics.sh --zookeeper localhost:2181/myKafka --delete --topic topicName
只能删除没有消息的主题???
创建主题后去日志文件查看有信息再进去就是存消息的文件
创建主题后在节点下存放主题的信息 ls /myKafka/config/topics
创建带有配置信息的,然后查看配置信息,创建带有压缩的
主题配置参数
kafka-topics.sh --config xx=xx --config yy=yy
cleanup.policy
可取值”delete“活”compact“; 旧日志部分的处理方式;默认方式(“delete”),将会丢弃旧的部分当他们的回收时间或者尺寸限制到达时。”compact“将会进行压缩。服务器默认属性log.cleanup.policy
retention.bytes
若cleanup.policy是delete,配置日志到达的最大尺寸才能删除。默认值mone,没有尺寸限制只有时间限制
服务器默认属性log.retention.bytes
retention.ms
若cleanup.policy是delete,配置日志保存最长时间就要删除。默认值7 days
服务器默认属性log.retention.minutes
compression.type
磁盘上持久化数据的压缩,producer用于压缩数据的压缩类型。可选值有none(默认值无压缩)、gzip、snappy、lz4,produce使用(使用生产者的压缩格式)。压缩最好用于批量处理,批量处理消息越多,压缩性能越好。
max.message.bytes
主题接收消息的最大字节数,追加消息的最大字节数。若增大这个字节数,也必须增大consumer的fetch字节数,这样consumer才能fetch到这些最大字节数的消息。默认值1000000
服务器默认属性max.message.bytes
min.cleanable.dirty.ratio
控制log压缩器试图进行清除日志的频率。默认情况下,将避免清除压缩率超过50%的日志。这个比率避免了最大的空间浪费
默认值0.5 服务器默认属性min.cleanable.dirty.ratio
min.insync.replicas
当producer设置request.required.acks为-1时,min.insync.replicas指定replicas的最小数目(必须确认每一个repica的写数据都是成功的),只要到达这个数目,就ack成功,如果这个数目没有达到,producer会产生异常。
服务器默认属性min.insync.replicas
segment.bytes
log日志是分块存储的,此配置是指log日志划分成块的大小。默认值1G,服务器默认属性log.segment.bytes
segment.index.bytes
有关offsets和文件位置之间映射的索引文件的大小;一般不需要修改这个配置,默认值10M
服务器默认属性log.index.size.max.bytes
segment.jitter.ms
和日志滚动相关的,服务器默认属性log.roll.jitter.ms,hours
segment.ms
log分块文件没有达到需要删除、压缩的大小,一旦log的时间达到这个上限,就会强制新建一个log分块文件,默认是7days
服务器默认属性log.roll.hours
unclean.leader.election.enable
是否能够使不在ISR中replicas设置用来作为leader,默认值true
以上是关于kafka中关于主题的命令的主要内容,如果未能解决你的问题,请参考以下文章
Java程序创建Kafka Topic,以及数据生产消费,常用的命令