底層邏輯:
1)Kafka開啟了sasl驗證,意味着客戶端需要通過sasl驗證才能連接Kafka。
2)客戶端需要准備兩樣東西
第一:配置 -Djava.security.auth.login.config
第二:准備sasl驗證文件
3)針對canal來講,需要開啟sasl驗證模式。
具體操作如下:
1)canal.properties文件修改,用來指定數據發送kafka
canal.serverMode = kafka
2)canal.properties文件新增兩行配置,用來開啟sasl驗證模式。
canal.mq.properties.security.protocol = SASL_PLAINTEXT
canal.mq.properties.sasl.mechanism = PLAIN
3)instance.properties 文件修改 canal.mq.topic=maoxiangyi,用來指定數據發往哪個kafka
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="sss"
password="ssss";
};
4)准備一個文件kafka_client_jaas.conf,放在config目錄下。
5)修改啟動腳本 start.sh ,配置 -Djava.security.auth.login.config=/opt/canal/conf/kafka_client_jaas.conf。 具體位置參考以下代碼
if [ -n "$str" ]; then
JAVA_OPTS="-server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m -XX:MaxPermSize=256m -Xss256k -XX:-UseAdaptiveSizePolicy -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.security.auth.login.config=/opt/canal/conf/kafka_client_jaas.conf "
else
JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=128m "
fi
打完收工。
kafka 開啟sasl驗證,參考 https://blog.csdn.net/u010416101/article/details/79562214?utm_source=blogxgwz0