本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用登入憑證連線至叢集
建立秘密並將其與叢集建立關聯後,即可將用戶端連線至叢集。下列程序示範如何將用戶端連線至使用 SASL/SCRAM 身分驗證的叢集。它還顯示如何從範例主題產生和使用 。
使用 SASL/SCRAM 身分驗證將用戶端連線至叢集
-
在 AWS CLI 已安裝 的機器上執行下列命令。以叢集的 ARN 取代
clusterARN
。aws kafka get-bootstrap-brokers --cluster-arn
clusterARN
從此命令的 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