Kafka的advertised.listeners配置用于指定Kafka broker對外暴露的地址和端口。這個配置對于客戶端和其他broker來說非常重要,因為它們需要知道如何連接到Kafka集群。以下是關于advertised.listeners配置的一些規范和建議:
協議:advertised.listeners支持多種協議,如PLAINTEXT、SSL、SASL_PLAINTEXT和SASL_SSL。你可以根據你的需求和安全級別選擇合適的協議。
IP地址和端口:advertised.listeners的值應該是一個或多個IP地址和端口的組合,用逗號分隔。例如:PLAINTEXT://your.server.ip:9092 或 SSL://your.server.ip:9093。
格式:確保你使用的格式與Kafka客戶端庫兼容。例如,如果你使用的是Java客戶端庫,那么你應該使用advertised.listeners而不是advertised.listeners.plains或advertised.listeners.ssl。
優先級:如果你有多個advertised.listeners配置,Kafka會按照在配置文件中出現的順序來選擇。一旦找到一個可用的advertised.listeners,Kafka就會停止搜索并嘗試連接。因此,確保你的首選配置是正確的。
安全性:如果你的Kafka集群啟用了安全功能(如SSL或SASL),那么你需要在advertised.listeners中指定相應的協議和證書信息。確保你的客戶端也配置了相應的安全設置。
環境變量:你可以在啟動Kafka時通過環境變量來設置advertised.listeners。例如,在Linux系統上,你可以使用以下命令:
export KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://your.server.ip:9092
然后,在啟動Kafka時,你可以使用-D選項將環境變量傳遞給Kafka:
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties -Djava.security.krb5.conf=/path/to/krb5.conf -Djava.security.auth.login.config=/path/to/kafka_client_jaas.conf
總之,確保你的advertised.listeners配置正確、安全且易于理解。這將有助于確保你的Kafka集群能夠順利地與其他客戶端和broker通信。