集群安装信息如下:
kafka-broker-list:node21:9092,node22:9092,node23:9092
zookeeper.connect-list: node21:2181,node22:2181,node23:2181
1.启动zookeeper集群
所有zookeeper节点都需要执行
zkServer.sh start
2.启动Kafka集群服务
所有Kafka节点都需要执行
bin/kafka-server-start.sh config/server.properties &
3.查看kafka topic列表
bin/kafka-topics.sh --zookeeper node21:2181,node22:2181,node23:2181 --list
4.查看kafka特定topic的详情
bin/kafka-topics.sh --zookeeper node21:2181,node22:2181,node23:2181 --topic lx_test_topic --describe
Topic: lx_test_topic PartitionCount:3 ReplicationFactor:3 Configs:
Topic: lx_test_topic Partition: 0 Leader: 0 Replicas: 0,1,2 Isr: 0,2,1
Topic: lx_test_topic Partition: 1 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
Topic: lx_test_topic Partition: 2 Leader: 2 Replicas: 2,0,1 Isr: 2,0,1
第一行:PartitionCount:分区数, ReplicationFactor:副本数===topic为:lx_test_topic设置了3个分区数和3个副本数
第二行以下:Partition:当前分区号,Leader:领导者所在的broker.id节点,Replicas:副本所在的broker.id节点列表,Isr:副本复制成功的broker.id节点列表
总体表述就是:
Kafka集群一共三个节点,lx_test_topic这个Topic, 编号为0的Partition,Leader在broker.id=0这个节点上,副本在broker.id为0 1 2这个三个节点,并且所有副本都存活,并跟broker.id=0这个节点同步
5.创建topic
bin/kafka-topics.sh --zookeeper node21:2181,node22:2181,node23:2181 --replication-factor 3 --partitions 3 --topic TestTopic --create
选项说明:
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数
6.向topic写入数据
生产者
bin/kafka-console-producer.sh --broker-list node21:9092,node22:9092,node23:9092 --topic TestTopic
新生产者(支持0.9版本+)
bin/kafka-console-producer.sh --broker-list node21:9092,node22:9092,node23:9092 --topic TestTopic --producer.config config/producer.properties
7.查看kafka group列表
消费者列表
bin/kafka-consumer-groups.sh --zookeeper node21:2181,node22:2181,node23:2181 --list
新消费者列表(支持0.9版本+)
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server node21:9092,node22:9092,node23:9092 --list
8.查看kafka特定group的详情
消费组详情
bin/kafka-consumer-groups.sh --zookeeper node21:2181,node22:2181,node23:2181 --group lx_test --describe
新消费组的消费详情(支持0.9版本+)
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server node21:9092,node22:9092,node23:9092 --group test-consumer-group --describe
标记解释:
TOPIC
PARTITION
CURRENT-OFFSET
LOG-END-OFFSET
LAG
CONSUMER-ID
HOST
CLIENT-ID
topic名字 分区id 当前已消费的条数 总条数 未消费的条数 消费id 主机ip 客户端id
9.创建消费者并指定其所在的组group
bin/kafka-console-consumer.sh --bootstrap-server node21:9092,node22:9092,node23:9092 --topic mytest --consumer-property group.id=group_mytes
10.从topic消费
消费者
bin/kafka-console-consumer.sh --zookeeper node21:2181,node22:2181,node23:2181 --from-beginning --group lx_test --topic test
新消费者(支持0.9版本+)
bin/kafka-console-consumer.sh --new-consumer --bootstrap-server node21:9092,node22:9092,node23:9092 --group test-consumer-group --topic test --from-beginning --consumer.config config/consumer.properties
11.设置偏移量
设置为最初偏移量
bin/kafka-consumer-groups.sh --bootstrap-server node21:9092,node22:9092,node23:9092 --group test-consumer-group --topic test --reset-offsets --to-earliest –execute
设置任意偏移量
bin/kafka-consumer-groups.sh --bootstrap-server node21:9092,node22:9092,node23:9092 --group test-consumer-group --topic test --reset-offsets --to-offset 3 –execute
设置最近偏移量
bin/kafka-consumer-groups.sh --bootstrap-server node21:9092,node22:9092,node23:9092 --group test-consumer-group --topic test --reset-offsets --to-latest --execute
12.平衡leader
bin/kafka-preferred-replica-election.sh --zookeeper zk_host:port/chroot
13.kafka自带压测
bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=localhost:9092