文章目录
昨天历经万难终于装好了单机的Kafka3.2.1
并且使用自带的zookeeper
启动了。
Kafka
下,/bin
目录中有许多基本命令(涉及较难的zookeeper安全等暂时不了解)
学习一下:
一、启动
1、启动自带的Zookeeper
zookeeper-server-start.sh
命令:
bin/zookeeper-server-start.sh config/zookeeper.properties &
官网上的命令没有 &
,如果不加,按下ctrl+c
这个进程就没了。
加上这个后台运行,就算ctrl+c
也不会结束这个进程。
2、启动Kafka
kafka-server-start.sh
命令:
bin/kafka-server-start.sh -daemon config/server.properties
使用jps
命令可以看到Zookeeper
和Kafka
都成功启动了。
二、Topic操作
1、创建一个topic
bin/kafka-topics.sh --create --topic topic_test --bootstrap-server master:9092
创建成功。
topic相关命令基本都是这样的格式:
bin/kafka-topics.sh
topic命令--create --topic
创建topictopic_test
要创建的topic名称.--bootstrap-server
+ broker主机名称:Kafka端口号
关于Kafka和Zookeeper端口号
这里要解释一下:
- 在
server.properties
文件里,zookeeper.connect
配置的是各个机器的IP地址及它们的zookeeper端口号
- Kafka当前
broker
的端口号配置:
模板为:
advertised.listeners=PLAINTEXT://your.host.name:9092
举例:
advertised.listeners=PLAINTEXT://master:9092
另外有关listener
与advertised.listeners
还需要进一步了解。
可自行百度。
2、查看broker下指定的Topic信息
bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server master:9092
执行结果:
可以看到,输出这个
3、写入topic
bin/kafka-console-producer.sh --topic topic_test --bootstrap-server master:9092
执行
随便输入,回车就能发送。
4、查看topic事件
bin/kafka-console-consumer.sh --topic topic_test --from-beginning --bootstrap-server master:9092
说明刚才的写入成功了。
(提示:--
前面的空格千万不能少,不然就不能消费到数据了)
5、查看topic列表
bin/kafka-topics.sh --list --bootstrap-server master:9092
6、关闭自带的Zookeeper
zookeeper-server-stop.sh
bin/zookeeper-server-stop.sh
7、关闭Kafka
bin/kafka-server-stop.sh
还有消费者组之类的有时间学习之后,再补充记录吧……
三、不使用Zookeeper启动Kafka
不使用Zookeeper
启动Kafka
,配置文件则是放在了config/kraft
文件夹下:
1、修改配置文件
node.id=0
controller.quorum.voters=0@mster:9093
另外里面还需要更改日志文件路径,我在kraft
下新建了一个:
然后:
log.dirs=/home/software/kafka/config/kraft/kraft-logs
listeners=PLAINTEXT://master:9092,CONTROLLER://master:9093
advertised.listeners=PLAINTEXT://master:9092
其它的基本不用动。
2、格式化目录生成文件
在kafka
目录下执行命令:
bin/kafka-storage.sh random-uuid
为当前节点生成唯一的一个id
执行格式化命令:
bin/kafka-storage.sh format -t 0wkP3X0tSfqUg0g4a08SnQ -c /home/software/kafka/config/kraft/server.properties
上面这个命令里:
-t
后面是刚才生成的一串字符
-c
后面是kraft
下server.properties
的绝对路径
执行完毕就能看到我指定的日志文件夹下,多了一个meta.properties
。
里面的内容就是我们刚才配置的和生成的。
3、启动Kafka
bin/kafka-server-start.sh config/kraft/server.properties &
(在不使用Zookeeper
的前提下,加上&
保证它后台运行)
启动成功,突然发现可视化工具是一定要指定zookeeper
的,淦!
用命令查看却发现,提示没有数据,并没有说没有这个topic
:
用命令重新对这个topic发送消息:
再次查看:
只有这些消息?是因为启动方式改变会使数据丢失吗?
当前只有一个broker,一个消费者。
考虑到接下来要写代码,为了方便调试,在主机使用可视化工具更方便。
我还是选择配合zookeeper
使用。