kafka未连接外网:无法生产数据server.properties的注意事项

首先注意下kafka的版本:这是我接触过的两个版本

kafka2.11-0.11.0.0:新版配置抛弃了host.name 和 post选项,需在server.properties下配置

advertised.listeners=PLAINTEXT://brokerIP:9092

kafka_2.11-0.8.2.1: 需在server.properties下配置

host.name=IP号
post=9092
接下来说下我所理解的通过其他主机做生产者遇到的一些问题及理解

问题:在本机可以生产到数据,给其他人IP、端口和topic却无法生产数据到broker集群
测试后发现:其他主机没有配置hosts,导致Zookeeper无法解析其监听broker的IP和端口,这里的IP是指在集群上用的hosts别名。

host.name和port的值是注册到Zookeeper的,我写的是hosts配置的值,如slave别名。
如果advertised.host.name没有设,会用host.name的值注册到zookeeper,如果host.name也没有设,则会使用JVM拿到的本机hostname注册到zk。
如果advertised.host.name没有设,host.name不能设为0.0.0.0,否则client通过zookeeper获取的broker地址就是0.0.0.0
如果host.name和advertised.host.name都不设,client通过zk拿到的就是JVM返回的本机hostname,如果这个hostname是client无法访问到的,client就会连不上broker。
可用zkCli中执行get /brokers/查看信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章