本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用登入憑證連線至叢集
建立秘密並將其與叢集建立關聯後,即可將用戶端連線至叢集。下列程序示範如何將用戶端連線至使用 SASL/SCRAM 身分驗證的叢集。它還顯示如何從範例主題產生和使用 。
使用 SASL/SCRAM 身分驗證將用戶端連線至叢集
-
在 AWS CLI 已安裝 的機器上執行下列命令。以叢集的 ARN 取代
clusterARN。aws kafka get-bootstrap-brokers --cluster-arnclusterARN從此命令的 JSON 結果中,儲存與名為 的字串相關聯的值
BootstrapBrokerStringSaslScram。您將在後續步驟中使用此值。 -
在用戶端機器上建立 JAAS 組態檔案,其中內含儲存在秘密中的使用者憑證。例如,為使用者 alice,建立一個名為
users_jaas.conf的檔案,內含以下內容。KafkaClient { org.apache.kafka.common.security.scram.ScramLoginModule required username="alice" password="alice-secret"; }; -
使用以下命令將 JAAS 組態檔案匯出為
KAFKA_OPTS環境參數。export KAFKA_OPTS=-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf -
在
/tmp目錄中,建立名為kafka.client.truststore.jks的檔案。 -
(選用) 使用下列命令,將 JVM
cacerts資料夾的 JDK 金鑰存放區檔案複製到您在上一個步驟中建立kafka.client.truststore.jks的檔案。使用執行個體上 JDK 資料夾的名稱取代JDKFolder。例如,您的 JDK 資料夾可能會命名為java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64。cp /usr/lib/jvm/JDKFolder/lib/security/cacerts /tmp/kafka.client.truststore.jks -
在安裝 Apache Kafka 的
bin目錄中,建立名為client_sasl.properties的用戶端屬性檔案,內含以下內容。此檔案會定義 SASL 機制和通訊協定。security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 -
若要建立範例主題,請執行下列命令。將
BootstrapBrokerStringSaslScram取代為您在本主題的步驟 1 中取得的引導代理程式字串。<path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-serverBootstrapBrokerStringSaslScram--command-config<path-to-client-properties>/client_sasl.properties --replication-factor 3 --partitions 1 --topic ExampleTopicName -
若要產生資料到您建立的範例主題,請在用戶端機器上執行下列命令。將
BootstrapBrokerStringSaslScram取代為您在本主題的步驟 1 中擷取的引導代理程式字串。<path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-listBootstrapBrokerStringSaslScram--topicExampleTopicName--producer.config client_sasl.properties -
若要從您建立的主題取用資料,請在用戶端機器上執行下列命令。將
BootstrapBrokerStringSaslScram取代為您在本主題的步驟 1 中取得的引導代理程式字串。<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-serverBootstrapBrokerStringSaslScram--topicExampleTopicName--from-beginning --consumer.config client_sasl.properties
連線問題疑難排解
執行 Kafka 用戶端命令時,您可能會遇到 Java 堆積記憶體錯誤,特別是在使用大型主題或資料集時。發生這些錯誤是因為 Kafka 工具以 Java 應用程式的形式執行,其預設記憶體設定可能不足以滿足您的工作負載。
若要解決Out of Memory Java Heap錯誤,您可以透過修改KAFKA_OPTS環境變數以包含記憶體設定來增加 Java 堆積大小。
下列範例會將堆積大小上限設定為 1GB (-Xmx1G)。您可以根據可用的系統記憶體和需求來調整此值。
export KAFKA_OPTS="-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf -Xmx1G"
對於使用大型主題,請考慮使用時間型或位移型參數,而不是--from-beginning限制記憶體用量:
<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-serverBootstrapBrokerStringSaslScram--topicExampleTopicName--max-messages 1000 --consumer.config client_sasl.properties