03linux下玩kafka
为了方便对实习生小课题中kafka方便调试,我决定在自己的腾讯云服务器上部署一个单机kafka,其实跟本地windows没啥区别,不过还是做一下记录吧。服务器环境是centod7.3。
第一步-安装JDK
安装jdk1.8或以上版本。由于现在下载jdk都需要先注册,而注册内容令人不适,所以这里贴出一个我的百度云下载地址,方便大家使用,包含了exe和tar两个版本。
提取码:3chj
具体安装可以参考我之前写过的笔记:
第二步-安装kafka
1.解压:tar -zxvf kafka_2.12-2.2.0.tgz
2.修改 kafka-server 的配置文件:
-----2.1 vim /usr/local/kafka/config/server.properties
-----2.2 broker.id=1
-----2.3 log.dir=/data/kafka/logs-1
3.来到bin目录下,后台启动ZK:./zookeeper-server-start.sh -daemon …/config/zookeeper.properties
4.后台启动KAFKA:./kafka-server-start.sh -daemon …/config/server.properties
5.创建topic:./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
6.查看topic列表:./kafka-topics.sh --list --zookeeper localhost:2181
7.启动生产者:./kafka-console-producer.sh --broker-list localhost:9092 --topic test
8.启动消费者:./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
在服务器上搞一切OK,我们开放安全组对9092的端口,在本地试一把呢?结果报错了:
1 | java.lang.IllegalStateException: No entry found for connection 1 |
解决方法是主机的kafka配置文件($KAFKA_HOME/config/server.properties
)中:添加:
1 | advertised.listeners=PLAINTEXT://$IP_A:9092(默认这个key所在行是注释掉的) |
其中$IP_A
可以是主机的IP
或者hostname
.
关于如何在windows下搞,请参考我的博客:windows下kafka的基本使用
以上参考了博文:Kafka 安装及快速入门,不过我发现他有一点点错误,并且他遇到的问题我没遇到。我遇到的问题他可能也没尝试到^^。