本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用登录凭证连接到集群
在创建密钥并将其与集群关联后,您便可以将客户端连接到集群。以下过程演示如何将客户端连接到使用 SASL/SCRAM 身份验证的集群。它还展示了如何制作和使用示例主题。
使用 SASL/SCRAM 身份验证将客户端连接到集群
-
在已 Amazon CLI 安装的计算机上运行以下命令。
clusterARN替换为集群的 ARN。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的文件。 -
(可选)使用以下命令将 JDK 密钥存储文件从 JVM
cacerts文件夹复制到您在上一步中创建kafka.client.truststore.jks的文件中。JDKFolder替换为实例上的 JDK 文件夹的名称。例如,您的 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