一 Kafka介绍及常用命令行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一 Kafka介绍及常用命令行相关的知识,希望对你有一定的参考价值。

参考技术A Kafka本质上是一个MQ,它是分布式的,基于发布/订阅模式,主要应用于大数据实时处理领域。

异步处理(MQ的传统应用场景)

使用消息队列的好处:

本机MacOS已安装好Kafka。

这里的server.properties里面配置了server的一些属性,目前主要看下面几个:

3.2 查看主题

3.3 删除主题

linux中kafka集群搭建及常用命令

一、安装zookeeper集群

tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz -C /usr/local/
cd /usr/local/
ln -s apache-zookeeper-3.5.5-bin zookeeper

mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
clientPort=2181
server.1=192.168.1.12:2888:3888
server.2=192.168.1.13:2888:3888
server.3=192.168.1.14:2888:3888

mkdir /tmp/zookeeper/data -p
mkdir /tmp/zookeeper/log -p

#在192.168.1.12上
echo 1 >/tmp/zookeeper/data/myid
#在192.168.1.13上
echo 2 >/tmp/zookeeper/data/myid
#在192.168.1.14上
echo 3 >/tmp/zookeeper/data/myid
vi /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

source /etc/profile
zkServer.sh start
zkServer.sh status

二、安装Kafka集群

tar -zxvf kafka_2.11-2.2.1.tgz -C /usr/local/
cd /usr/local/
ln -s kafka_2.11-2.2.1 kafka
cd /usr/local/kafka/config
vi server.properties
#broker.id不能相同
broker.id=1
listeners=PLAINTEXT://192.168.1.12:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=192.168.1.12:2181,192.168.1.12:2181,192.168.1.12:2181
cd /usr/local/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties

三、Kafka常用命令

主题topic
cd /usr/local/kafka/bin
a.创建topic
./kafka-topics.sh --create --zookeeper 192.168.1.12:2181 --replication-factor 1 --partitions 1 --topic my-kafka-topic
./kafka-topics.sh --create --bootstrap-server 192.168.1.12:9092 --replication-factor 1 --partitions 1 --topic my-kafka-toptic1   #--bootstrap-server指定broker地址,可以写多个地址,用逗号分割,用法和--zookeeper相同

b.查看topic列表
./kafka-topics.sh --list --zookeeper 192.168.1.13:2181
./kafka-topics.sh --list --bootstrap-server 192.168.1.13:9092
 
c.如果需要查看topic的详细信息,需要使用describe命令
kafka-topics.sh --describe --zookeeper 192.168.1.12:2181 --topic test-topic
 
d.#若不指定topic,则查看所有topic的信息
./kafka-topics.sh --describe --zookeeper 192.168.1.12:2181
 
e.删除topic
./kafka-topics.sh --delete --zookeeper 192.168.1.12:2181 --topic my-kafka-topic
-------------------------------------------
生产者
./kafka-console-producer.sh --broker-list 192.168.1.12:9092 --topic my-kafka-topic
-------------------------------------------
消费者
./kafka-console-consumer.sh --bootstrap-server 192.168.1.12:9092 --topic my-kafka-topic
# 如果需要从头开始接收数据,需要添加--from-beginning参数
./kafka-console-consumer.sh --bootstrap-server 192.168.1.12:9092 --from-beginning --topic my-kafka-topic
#指定消费者组
./kafka-console-consumer.sh --bootstrap-server 192.168.1.12:9092 --topic my-kafka-toptic1 --group yingyong1 --from-beginning

#########################################
./kafka-topics.sh --describe  --zookeeper  192.168.1.12:2181
Topic:my-kafka-topic5   PartitionCount:5        ReplicationFactor:2     Configs:
        Topic: my-kafka-topic5  Partition: 0    Leader: 3       Replicas: 2,3   Isr: 3,2
        Topic: my-kafka-topic5  Partition: 1    Leader: 3       Replicas: 3,1   Isr: 3,1
        Topic: my-kafka-topic5  Partition: 2    Leader: 1       Replicas: 1,2   Isr: 1,2
        Topic: my-kafka-topic5  Partition: 3    Leader: 1       Replicas: 2,1   Isr: 1,2
        Topic: my-kafka-topic5  Partition: 4    Leader: 3       Replicas: 3,2   Isr: 3,2
注:Isr(in-sync Replica)在同步的副本,Replicas指副本在哪个代理上
一个分区只能被一个消费者组中的一个消费者消费,
如果一个消费者组中有5个分区一个消费者,那么这个消费者会消费这五个分区
如果一个消费者组中有5个分区2个个消费者,那么第一个消费者会消费3个分区,另一个消费者会消费2个分区
如果一个消费者组中有5个分区6个个消费者,那么其中5个消费者会分别消费一个,而第六个消费者不会消费数据,当前五个中有退出的时候,第六个消费者才会消费数据

生产者和消费者在连接kafka时,既可以连接kafka服务器的地址,也可以连接zookeeper的地址,且地址可以写多个中间用逗号隔开即可

  

  

  

  

  

 

以上是关于一 Kafka介绍及常用命令行的主要内容,如果未能解决你的问题,请参考以下文章

Kafka 常用命令行操作

Kafka命令行详细介绍

kafka 常用命令行操作(查看主题,生产数据,消费数据)

linux中kafka集群搭建及常用命令

kafka常用命令行

Kafka常用命令合集