KAFKA 常用命令

kafka常用命令个人理解,小白认知不专业

启动zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

启动kafka节点

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

创建主题

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic replication-test 

说明:--create:动作参数 创建主题;  --zookeeper localhost:2181: 集群位置确定;
     --replication-factor:备份数; --partitions:分区数;
     --topic: 主题名称

查看集群描述

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

说明: --describe:动作参数 描述集群;  --zookeeper localhost:2181 集群位置确定
       --topic:主题名称

创建生产者

旧生产者  bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

新生产者 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer.config config/producer.properties

创建消费者

旧消费者 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test

新消费者 bin/kafka-console-consumer.sh 
--bootstrap-server localhost:9092 --topic test 
--new-consumer --from-beginning --consumer.config config/consumer.properties

疑问:为什么许多命令里面都带有zookeeper参数,kafka和zookeeper有什么联系?

首先梳理一下kafka工作流程:

  • 主题(topic)可以看作是一个消息的分类标签, 每一个主题的消息都可以被分成多个分区(Partitions), 分区被分布在不同的broker上作为备份(Replication), 为了保证分布式的可靠性,可以有效处理其中broker宕机的情况(但是必须保证超过半数的别人broker是正常的,否则分区数据不全导致同主题消息不完整).

  • ZooKeeper是一个快速、高可用、容错、分布式的协调服务,用于分布式系统的协调,被用来管理协调broker。Kafka集群是把broker状态保存在Zookeeper中的。

  • 典型的ZooKeeper ensemble,一台服务器作为Leader,其它作为Follower。当Ensemble启动时,先选出Leader,然后所有Follower复制Leader的状态。所有写请求都通过Leader路由,变更会广播给所有Follower。

KAFKA 常用命令_第1张图片

你可能感兴趣的:(KAFKA 常用命令)