一、springboot整合kafka報錯“30006 ms has passed since batch creation plus linger time”
解決方法:
打開server.properties文件
vim config/server.properties
將
#listeners=PLAINTEXT://:9092
修改為
listeners=PLAINTEXT://(你的主機IP):9092
二、Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
原因:
kafka啟動后會在zookeeper的/brokers/ids下注冊監聽協議,包括IP和端口號,客戶端連接的時候,會取得這個IP和端口號。但是listeners和advertised.listeners的區別,advertised.listeners才是真正暴露給外部使用的連接地址,會寫入到zookeeper節點中的。advertised.listeners才是真正的對外代理地址,那么listeners的作用就不是對外提供服務代理而是監聽。
解決:
打開server.properties文件,將下面兩行修改為:
listeners=PLAINTEXT://0.0.0.0:9092 advertised.listeners=PLAINTEXT://(IP Address):9092
三、Timeout expired while fetching topic metadata
第二天開發發現上面錯誤,解決方法竟然是打開對應端口的防火牆!
firewall-cmd --zone=public --add-port=9092/tcp --permanent firewall-cmd --reload
四、kafka啟動OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' (errno=12)
打開kafka安裝路徑,在bin目錄下
vim kafka-server-start.sh
將
KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
修改為
KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"