在Ubuntu上配置Apache Kafka以支持多種協議,主要涉及對Kafka的server.properties
文件進行相應的設置。以下是詳細步驟和說明:
Kafka通過listeners
和advertised.listeners
參數來定義服務端監聽地址和客戶端連接地址。您可以根據需要配置多個監聽器,每個監聽器支持不同的協議。
示例配置:
listeners=PLAINTEXT://0.0.0.0:9092,SSL://0.0.0.0:9093,SASL_PLAINTEXT://0.0.0.0:9094
advertised.listeners=PLAINTEXT://your_server_ip:9092,SSL://your_server_ip:9093,SASL_PLAINTEXT://your_server_ip:9094
在這個示例中,我們配置了三個監聽器,分別支持PLAINTEXT、SSL和SASL_PLAINTEXT協議。
為了確保Kafka能夠根據客戶端連接使用的協議選擇正確的監聽器,您需要配置listener.security.protocol.map
。
示例配置:
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT
這個映射告訴Kafka,對于PLAINTEXT協議的連接,使用PLAINTEXT監聽器;對于SSL協議的連接,使用SSL監聽器;對于SASL_PLAINTEXT協議的連接,使用SASL_PLAINTEXT監聽器。
如果您希望啟用SSL/TLS協議,需要在server.properties
中進行相應的配置。
示例配置:
ssl.enabled.protocols=TLSv1.2
ssl.client.auth=required
ssl.truststore.location=/path/to/truststore.jks
ssl.truststore.password=truststore_password
Kafka支持多種SASL認證機制,如SCRAM-SHA-256和PLAIN。您可以在server.properties
中配置SASL相關的設置。
示例配置:
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
客戶端在連接Kafka集群時,需要指定使用哪個監聽器。您可以通過bootstrap.servers
配置項來指定連接的監聽器。
示例配置:
bootstrap.servers=PLAINTEXT://your_server_ip:9092,SSL://your_server_ip:9093,SASL_PLAINTEXT://your_server_ip:9094
確保您的防火墻允許Kafka使用的端口(如9092、9093、9094等)。同時,根據您的網絡架構,合理配置advertised.listeners
以確??蛻舳四軌蛘_連接到Kafka集群。
以下是一個完整的server.properties
示例配置,包含了上述所有配置項:
listeners=PLAINTEXT://0.0.0.0:9092,SSL://0.0.0.0:9093,SASL_PLAINTEXT://0.0.0.0:9094
advertised.listeners=PLAINTEXT://your_server_ip:9092,SSL://your_server_ip:9093,SASL_PLAINTEXT://your_server_ip:9094
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT
ssl.enabled.protocols=TLSv1.2
ssl.client.auth=required
ssl.truststore.location=/path/to/truststore.jks
ssl.truststore.password=truststore_password
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
在進行上述配置后,重新啟動Kafka服務以使配置生效。