最近在服务器上部署kafka,但是在启动时一直报错,而本地却是好好的.究其原因居然是服务器内存太小,刚好小于1G,毕竟用的服务器配置确实比较垃圾
说回正题,启动kafka内存配置不能少于1G,修改之后,好了,启动起来了.问题又来了,启动起来后发现kafka消费者连接不上提供者,总会连接超时.检查了域名等配置都没有错,
1.kafka依赖 : java 环境,以及zookeeper
下载 zookeeper :wget http://mirror.csclub.uwaterloo.ca/apache/zookeeper/
下载 kafka :wget http://apache.mirror.colo-serv.net/kafka/0.10.2.1/kafka_2.12-0.10.2.1.tgz
2.解压后 启动 (修改配置后启动,如果你的zookeeper,kafka消费者提供者都在本机,那么就不用修改了,看下是否正常启动即可)
启动./bin/zookeeper-server-start.sh config/zookeeper.properties
启动./bin/kafka-server-start.sh config/server.properties
配置事项:
kafka启动默认内存不能少于1G:
配置文件 bin/kafka-server-start.sh 找到export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 1G , 修改为 : KAFKA_HEAP_OPTS="-Xmx512M -Xms512M",以降低内存要求
zookeeper配置:
配置文件 config/server.properties 找到 zookeeper.connect=localhost:2181 localhost改成相关域名
kafka 与提供者与消费者不在同一台主机的情况:
配置文件 config/server.properties 在最后一行添加:advertised.host.name = kafka-provider.com (kafka-provider为部署kafka所在的服务器域名)
注意问题:如果发布成功但订阅失败,可进入zookeeper并删除topic试试:
1.ls /brokers/topics
2.rmr /brokers/topics/(topic name)