问题:项目中用到kafka作为消息中间件,因为现在是开发阶段,试了一次没问题之后就没在管,今天又要测试kafka相关功能,发现消息发送者能够正常发送消息,但是消费者怎么也就收不到数据。然后经过各种百度进行了如下的一系列操作,终于可用了
解决方法:
- 首先停止kafka
进入到kafka的bin目录下,停止kafka:
./kafka-server-stop.sh .../config/server.properties - 查看server.properties命令,看logdir的目录,换个目录或者删除目录中的数据
vi server.properties - 停止zookeer,进入到zookeeper 的bin目录下,执行:
./zkServer.sh stop - 同理查看zookeeper配置文件,修改dataDir的路径或者删除目录中的数据
vi zoo.cfg(conf目录下的) - 重启zookeeper,进入到zookeeper 的bin目录下,执行:
./zkServer.sh start - 重启kafka,进入到kafka的bin目录下,执行:
./kafka-server-start.sh .../config/server.properties
查看kafka启动是否有错误,如果没有错误,以后台方式执行
./kafka-server-start.sh -daemon .../config/server.properties
记录几个常用命令
- 创建主题:./kafka-topics --zookeeper.sh localhost:2181 --create --topic test123 --partitions 2 --replication-factor 1
- 查看主题:./kafka-topics --zookeeper.sh localhost:2181 --list
- 发送消息:./kafka-console-producer.sh --broker-list localhost:9092 --topic test123
- 消费消息:./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test123 --from-beginning
- 查看消息消费:./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group groupname --describe
虽然问题解决了,但是kafka内部原理根本不了解,在这立个flag,学习kafka!