kafka常用命令及概念总结,kafka学习三

一、常用命令

最近在学习kafka,在搭建kafka集群时,用到了很多常用命令,借此记录下来,不断学习不断记录。
这是kafka的文件目录
在这里插入图片描述

1.启动kafka

-daemon 代表后台运行方式

./bin/kafka-server-start.sh -daemon ./config/server.properties

2.停止kafka服务

./bin/kafka-server-stop.sh

3.创建topic,创建一个topic名为kafka1

单机

./bin/kafka-topics.sh --create --zookeeper 192.168.211.137:2181 --replication-factor 3 \
--partitions 3 --topic kafka1

集群:

./bin/kafka-topics.sh --create --zookeeper 192.168.211.137:2181,192.168.211.139:2181,\
192.168.211.140:2181 --replication-factor 3 --partitions 3 --topic kafka1

参数解析:

  1. replication-factor 3 复制3份
  2. partitions 3 创建3个分区

4.Topic

  1. 查看所有topic
./bin/kafka-topics.sh --zookeeper ip:2181 --list
  1. 查看指定topic
./bin/kafka-topics.sh --zookeeper ip:2181 --describe --topic kafka1
  1. 删除topic
./bin/kafka-topics.sh --delete --zookeeper ip:2181 --topic kafka1

5.生产消息

  1. 单机
./bin/kafka-console-producer.sh --broker-list ip:9092 --topic kafka1
  1. 集群
./bin/kafka-console-producer.sh --broker-list ip1:9092,ip2:9092,ip2:9092 --topic kafka1

6.消费消息

  1. 单机
./bin/kafka-console-consumer.sh --bootstrap-server ip:9092 --from-beginning --topic kafka1
  1. 集群
./bin/kafka-console-consumer.sh --bootstrap-server ip1:9092,ip2:9092,ip3:9092 \
--topic kafka1 --from-beginning

9.consumer管理

  1. 查看consumer Group列表
./bin/kafka-consumer-groups.sh  --list  --bootstrap-server ip:9092
  1. 查看指定group.id的消费情况
./bin/kafka-consumer-groups.sh --bootstrap-server 47.52.199.51:9092 --group test-1 --describe

二、基本概念

1.理解kafka

Kafka是一个分布式数据流平台,可以运行在单台服务器上,也可以在多台服务器上部署形成集群。
它提供了发布和订阅功能,使用者可以发送数据到Kafka中,也可以从Kafka中读取数据。

2.Topic

主题,Kafka 中的消息都以主题为单位进行归类,生产者负责将消息发送到特定的主题(发送到 Kafka 集群中的每一条消息都要指定一个主题),消费者负责订阅主题并进行消费。比如应用程序A订阅了主题t1,应用程序B订阅了主题t2而没有订阅t1,那么发送到主题t1中的数据将只能被应用程序A读到,而不会被应用程序B读到。

3.Broker

一台kafka服务器就可以称之为broker,Kafka 集群由多个 Kafka 实例组成,每个kafka实例称为 broker,在集群中每个 broker 都有一个唯一的 brokerid ,不能重复。

4.Partition

分区,主题可以细分为多个分区,一个分区只属于一个topic,每个topic可以有一个或多个partition(分区)。物理上把topic分成一个或者多个分区,每一个分区是一个有序的队列。且每一个分区在物理上都对应着一个文件夹,该文件夹下存储这个分区所有消息和索引文件。Kafka使用分区支持物理上的并发写入和读取,从而大大提高了吞吐量。Kafka只保证一个分区的数据顺序发送给消费者,而不保证整个topic里多个分区之间的顺序.

5.Record

记录,实际写入Kafka中并可以被读取的消息记录,每个record包含了key、value和timestamp。

6.Producer

生产者,也就是发送消息的一方。生产者负责创建消息,然后将其发送到 Kafka 中。

7.Consumer

消费者,也就是接收消息的一方,用来读取Kafka中的数据。

8.Consumer Group

消费者组,一个消费者组可以包含一个或多个消费者。使用多分区+多消费者方式可以极大提高数据下游的处理速度。
consumer group是 Kafka 提供的可扩展且具有容错性的消费者机制。组内有着多个消费者,它们共享一个公共的 id,即 group id。组内的所有消费者协调在一起来消费订阅主题的所有分区,而且每个分区只能由同一个消费组内的一个消费者来消费。

9.Offest

Offset指的是Partition以及User Group而言,记录某个user group在某个partiton中当前已经消费到达的位置。

10.Replicas(副本)

每一个分区,根据复制因子N,会有N个副本,比如在broker1上有一个topic,分区为topic-1, 复制因子为2,那么在两个broker的数据目录里,就都有一个topic-1,其中一个是leader,一个replicas同一个Partition可能会有多个Replica,而这时需要在这些Replication之间选出一个Leader,Producer和Consumer只与这个Leader交互,其它Replica作为Follower从Leader中复制数据

参考文章:

Kafka基本概念及原理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章