在新发布的kafka2.8.0版本中,已经可以不启动zk就可以使用kafka了,在config目录下多了一个kraft目录,在该目录中有一套新的配置文件,可以直接脱离ZooKeeper运行。
修改配置
到kraft目录中修改server.properties文件,单机的话主要是修改下面的配置
advertised.listeners=PLAINTEXT://localhost:9092
需要把localhost修改为ip地址,否者别的节点连不上kakfa。
测试是否可以连接可以使用如下命令:
格式是: telnet ip port
比如我的服务 : telnet 192.168.1.4 9092
启动kafka
通过现在三行命令,即可开启一个单机的broker
/usr/local/kafka/bin/kafka-storage.sh random-uuid
/usr/local/kafka/bin/kafka-storage.sh format -t 1DViwWWpQf63N6bhJFAgzQ -c /usr/local/kafka/config/kraft/server.properties
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/kraft/server.properties
#后台启动
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/kraft/server.properties
这样脱离ZooKeeper的kafka就启动了,当前版本还是测试阶段,所以官方不推荐使用。
创建topic
/usr/local/kafka/bin/kafka-topics.sh --create --topic test --partitions 3 --replication-factor 1 --bootstrap-server localhost:9092
查看topic信息
/usr/local/kafka/bin/kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092
删除topic
/usr/local/kafka/bin/kafka-topics.sh --delete --topic test --bootstrap-server localhost:9092
发送消息
/usr/local/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
消费消息
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning