美文网首页
Kafka之主题创建与修改

Kafka之主题创建与修改

作者: 五月笙 | 来源:发表于2021-04-05 22:43 被阅读0次

引子

如果broker端配置auto.create.topics.enable为true(默认为true),当收到客户端的元数据请求时则会创建topic。

向一个不存在的主题发送和消费都会创建一个新的主题,很多时候,非预期的创建主题,会导致很多意想不到的问题,建议关掉该特性。

创建

创建主题的更加推荐采用脚本的方式,位置为:

./bin/kafka-topics.sh
# 下面是通过命令指定分区数和副本数
./kafka-topics.sh  --zookeeper localhost:2181  --create   --topic testTopic --partitions 1  --replication-factor 1
PS: 创建topic时,分区数为num.partitions(默认1),副本因子为default.replication.factor

其中日志路径下查看broker的分配信息,也可以在ZooKeeper中获取分配信息:

[zk: localhost:2181(CONNECTED) 3] get /brokers/topics/testTopic-1
{"version":1,"partitions":{"0":[0]}}
cZxid = 0xd3
ctime = Sat Jul 20 09:57:21 CST 2019
mZxid = 0xd3
mtime = Sat Jul 20 09:57:21 CST 2019
pZxid = 0xd4
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 36
numChildren = 1

afka-topics.sh可以执行多种类型的topic操作,包括create、delete、alter、list、describe。

修改

# create 新增主题
./kafka-topics.sh  --zookeeper localhost:2181  --create   --topic testTopic --partitions 1  --replication-factor 1

# 删除主题
./kafka-topics.sh  --zookeeper   localhost:2181  --delete --topic testTopic-2
Topic testTopic-2 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

自重删除不是立刻删除,而且delete.topic.enable为false的时候,删除操作是没有作用的。

查看

查看主题详情:展示主题,分区数,副本数(AR),Leader副本所在broker,ISR等信息

./kafka-topics.sh --zookeeper localhost:2181 --describe --topic testTopic

Topic:testTopic PartitionCount:1    ReplicationFactor:1 Configs:
    Topic: testTopic    Partition: 0    Leader: 0   Replicas: 0 Isr: 0

如果没有指定--topic则会展示全部主题信息

代码

有相应的Java API对应kafka-topics.sh脚本实现的功能。

public class CreateTopic {
    public static final String BROKER_LIST = "192.168.13.53:2181";

    public static void main(String[] args) {
        String[] options = new String[]{
                "--zookeeper", BROKER_LIST,
                "--create",
                "--replication-factor", "1",
                "--partitions", "1",
                "--topic", "topic-1"
        };

        TopicCommand.main(options);
    }
}

参考

Kafka
深入了解Kafka

相关文章

  • Kafka之主题创建与修改

    引子 如果broker端配置auto.create.topics.enable为true(默认为true),当收到...

  • centOS7安装kafka

    解压 修改配置文件 修改配置文件 启动kafka 检测是否启动 创建主题 创建生产者 创建消费者

  • 【kafka】为什么kafka中的分区数只能增加不能减少?

    当一个主题被创建之后,依然允许我们对其做一定的修改,比如修改分区个数、修改配置等,这个修改的功能就是由kafka[...

  • kafka常用命令

    kafka-topic 创建主题 2.3版本创建命令 kafka-topics --bootstrap-serve...

  • Kafka 操作

    shell操作kafka 创建主题bin/kafka-topics.sh --create --zookeeper...

  • Kafka生产和消费

    在演示生成与消费消息之前,需要创建一个主题作为消息载体。Kafka提供了需要实用的脚本工具,存放在$KAFKA_H...

  • 修改kafka分区数

    这里记录下如何修改kafka的topic分区 查看当前topic分区,假设主题是testtopic 修改分区个数 ...

  • 修改与创建自己的Atom主题

    (这是我前几天在自己的博客里瞎写的。现在因为要关闭博客,所以转到这里了。图片中的水印为原博客的地址。不过因为它马上...

  • Kakfa常用命令

    创建主题 4个分区,2个副本kafka-topics.sh --create --zookeeper localh...

  • Shell 操作 kafka command

    预发环境 Shell 可以与预发、生产 Kafka 交互 说明: 创建 topic./kafka-topics.s...

网友评论

      本文标题:Kafka之主题创建与修改

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