美文网首页
kafka01 创建集群topic

kafka01 创建集群topic

作者: 6c0fe9142f09 | 来源:发表于2018-08-28 18:17 被阅读3次

创建集群topic

1.创建topic
  • 创建topic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myFirstTopic
1、 kafka-topics.sh:Kafka 提供的一个 shell 脚本文件(位于 bin 目录中),用于创建或查看 topic 信息。 
2、 --create:shell 脚本的参数,告诉 shell 脚本:要创建一个 topic。 
3、 --zookeeper localhost:2181:shell 脚本的参数,告诉 shell 脚本 Zookeeper 的地址,用于保存 topic 元数据信息。 
4、 --partitions 1:shell 脚本参数,告诉 shell 脚本:所创建的这个 topic 的 partition 个数为1 
5、 --replication-factor 1:shell脚本参数,告诉 shell 脚本:每个 partition 的副本数为1 
6、 --topic myFirstTopic:shell 脚本参数,告诉 shell 脚本:创建的 topic 的名称为 myFirstTopic。
  • 查看topic是否创建成功
[root@tencent2 bin]# ./kafka-topics.sh --zookeeper localhost:2181 --list
myFirstTopic
  • 启动producer向topic发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic myFirstTopic
  • 在新的终端启动消费者读取消息
./kafka-console-consumer.sh --bootstrap-server  localhost:9092 --topic myFirstTopic
  • 在生产者终端输入一条消息,看看消费者终端是不是收到消息了
2.详解kafka
- Kafka 的基本架构:一个 producer(生产者)发送消息到 Kafka 集群的某个 topic 中。consumer(消费者)可以消费某个(某几个) topic 中的消息。 Kafka 集群由多个 broker 组成。
- 什么是 broker?生产环境中,一台服务器上只会安装一个 Kafka 软件,这台服务器就是一个 Kafka Server,此时 Kafka Server 称为 broker;在我们的实验环境中,一个一台服务器上安装了三个 broker。
- 什么是 topic?发布到 Kafka 集群上的消息都属于某一个分类,这个分类称为 topic。topic 存储在 broker 中;
- 什么是 partition?一个 topic 包括多个 partition(分区),partition 是物理上的概念。producer 发送的消息存储在 partition 中,每个 partition 可以有多个 replica(副本);
- 什么是 producer?producer 是用来产生消息的,负责将消息发送到 Kafka broker 的 topic 上;
- 什么是 consumer?consumer 是用来消费消息的,用于从 Kafka broker 上的 topic 中读取消息;
- broker 和 consumer 使用 Zookeeper 管理状态信息,如 offset 信息。
上图中展示了 Kafka 相关的5个组件:producer、consumer、broker、topic、Zookeeper。
上图中展示了一个 broker,broker 中有一个名称为 KafkaTopic 的 Topic,KafkaTopic 中有3个 partition ,分别为 partition1 、partition2 、partition3 ;
消息生产者 producer 将消息发送到 topic 的 partition 中;
消息消费者 consumer 从 topic 的 partition 中读取消息;
consumer 和 broker 的元数据信息保存在 Zookeeper 中;
在 topic 中,每一个 partition 对应一个日志文件,partition 是一个有序的、不可变的消息序列;一个消息只能发送到一个 partition 上。
3.建立第二个topic
  • 创建topic,指定partitions:3,replication-fact:2
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 3 --topic mySecondTopic
  • 查看topic创建情况
./kafka-topics.sh --zookeeper localhost:2181 --list
  • 查看topic属性
./kafka-topics.sh --zookeeper localhost:2181 --describe --topic mySecondTopic
Topic
Topic:mySecondTopic PartitionCount:3    ReplicationFactor:2 Configs:
    Topic: mySecondTopic    Partition: 0    Leader: 2   Replicas: 2,1   Isr: 2,1
    Topic: mySecondTopic    Partition: 1    Leader: 0   Replicas: 0,2   Isr: 0,2
    Topic: mySecondTopic    Partition: 2    Leader: 1   Replicas: 1,0   Isr: 1,0

# 后面的 leader、replicas和ISR 涉及到 kafka 内核结构,我们后续单独开辟实验详细讲解,此时你只需要知道,这些参数保证了 kafka 集群的健壮性,保证消息不丢失,保证消息的高吞吐量。
4.查看zookeeper上的元数据信息
  • 进入zookeeper终端
./zookeeper-shell.sh localhost:2181
  • 查看元数据信息
ls /  # 查看根节点信息
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, config]
ls /brokers  # 查看brokers 信息
[ids, topics, seqid]
ls /brokers/ids  # 节点
[0, 1, 2]
ls /brokers/topics  # topic
[mySecondTopic, myFirstTopic, myFirstTopicnihao, __consumer_offsets]

相关文章

网友评论

      本文标题:kafka01 创建集群topic

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