如何在kafka中创建topic

如何在kafka中创建topic,第1张

[Toc]

在使用kafka发送消息和消费消息之前,必须先要创建topic,在kafka中创建topic的方式有以下3种:

通过 kafka-topics.sh 脚本来创建一个名为 topic-test1 并且副本数为2、分区数为4的topic。(如无特殊说明,本文所述都是基于1.0.0版本。)

打开kafka-topics.sh脚本一探究竟,其内容只有一行,具体如下:

这个脚本的主要作用就是运行 kafka.admin.TopicCommand 。在main方法中判断参数列表中是否包含有 create ,如果有,那么就实施创建topic的任务。

创建topic时除了需要zookeeper的地址参数外,还需要指定topic的名称、副本因子replication-factor以及分区个数partitions等必选参数 ,还可以包括disable-rack-aware、config、if-not-exists等可选参数。

创建topic的时候,如果名称中包含 . 或者 _ ,kafka会抛出警告。原因是:

在Kafka的内部做埋点时会根据topic的名称来命名metrics的名称,并且会将句点号 . 改成下划线 _ 。假设遇到一个topic的名称为 topic.1_2 ,还有一个topic的名称为 topic_1.2 ,那么最后的metrics的名称都为 topic_1_2 ,所以就会发生名称冲突。

     topic的命名不推荐(虽然可以这样做)使用双下划线 __ 开头,因为以双下划线开头的topic一般看作是kafka的内部topic,比如 __consumer_offsets 和 __transaction_state 。

topic的名称必须满足如下规则:

Kafka创建Topic步骤: 进入服务器找kafka安装目录进入bin文件夹输入命令--- 查看kafka现主题命令:/kafka-topics.sh --list --zookeeper zk_host:port 望采

配置topic级别参数时,相同(参数)属性topic级别会覆盖全局的,否则默认为全局配置属性值。

创建topic参数可以设置一个或多个--config "Property(属性)",下面是创建一个topic名称为"my-topic"例子,它设置了2个参数max message size 和 flush rate.

(A)创建topic时配置参数

(B)修改topic时配置参数

覆盖已经有topic参数,下面例子修改"my-topic"的max message属性

(C)删除topic级别配置参数

注:配置的kafka集群的根目录为/config/mobile/mq/mafka02,因此所有节点信息都在此目录下。

cleanup.policy

delete.retention.ms

delete.retention.ms

flush.messages

flush.ms

index.interval.bytes

message.max.bytes

min.cleanable.dirty.ratio

retention.bytes

retention.ms

segment.bytes

segment.index.bytes

log.roll.hours

参考资料:

https://www.cnblogs.com/moonandstar08/p/6139502.html

https://www.cnblogs.com/moonandstar08/p/6139463.html


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11699164.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存