Conexión a un clúster con credenciales de inicio de sesión - Transmisión administrada de Amazon para Apache Kafka

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conexión a un clúster con credenciales de inicio de sesión

Después de crear un secreto y asociarlo al clúster, puede conectar el cliente con el clúster. El siguiente procedimiento muestra cómo conectar un cliente a un clúster que utiliza la SASL/SCRAM autenticación. También muestra cómo producir y consumir datos desde un tema de ejemplo.

Conectar un cliente a un clúster mediante SASL/SCRAM autenticación

  1. Ejecute el siguiente comando en una máquina que AWS CLI esté instalada. clusterARNSustitúyalo por el ARN de su clúster.

    aws kafka get-bootstrap-brokers --cluster-arn clusterARN

    Del resultado JSON de este comando, guarde el valor asociado a la cadena llamada BootstrapBrokerStringSaslScram. Utilizará este valor en pasos posteriores.

  2. En su equipo cliente, cree un archivo de configuración JAAS que contenga las credenciales de usuario almacenadas en su secreto. Por ejemplo, para el usuario alice, cree un archivo llamado users_jaas.conf con el siguiente contenido.

    KafkaClient { org.apache.kafka.common.security.scram.ScramLoginModule required username="alice" password="alice-secret"; };
  3. Utilice el siguiente comando para exportar el archivo de configuración de JAAS como parámetro de entorno KAFKA_OPTS.

    export KAFKA_OPTS=-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf
  4. Cree un archivo denominado kafka.client.truststore.jks en el directorio /tmp.

  5. (Opcional) Utilice el siguiente comando para copiar el archivo del almacén de claves del JDK desde la carpeta cacerts del JVM al archivo kafka.client.truststore.jks que creó en el paso anterior. JDKFolderSustitúyalo por el nombre de la carpeta JDK de la instancia. Por ejemplo, su carpeta JDK podría llamarse 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
  6. En el directorio bin de su instalación de Apache Kafka, cree un archivo de propiedades del cliente llamado client_sasl.properties con el siguiente contenido. Este archivo define el mecanismo y el protocolo SASL.

    security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512
  7. Para crear un tema de ejemplo, ejecute el siguiente comando. BootstrapBrokerStringSaslScramSustitúyala por la cadena del broker bootstrap que obtuviste en el paso 1 de este tema.

    <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server BootstrapBrokerStringSaslScram --command-config <path-to-client-properties>/client_sasl.properties --replication-factor 3 --partitions 1 --topic ExampleTopicName
  8. Para continuar con el tema de ejemplo que ha creado, ejecute el siguiente comando en su equipo cliente. BootstrapBrokerStringSaslScramSustitúyala por la cadena bootstrap broker que recuperaste en el paso 1 de este tema.

    <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringSaslScram --topic ExampleTopicName --producer.config client_sasl.properties
  9. Para continuar con el tema que ha creado, ejecute el siguiente comando en el equipo cliente. BootstrapBrokerStringSaslScramSustitúyala por la cadena bootstrap broker que obtuviste en el paso 1 de este tema.

    <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --from-beginning --consumer.config client_sasl.properties

Solución de problemas de conexión

Cuando ejecute comandos de cliente de Kafka, es posible que encuentre errores de memoria del montón de Java, especialmente al trabajar con temas o conjuntos de datos de gran tamaño. Estos errores se producen porque las herramientas de Kafka se ejecutan como aplicaciones Java con configuraciones de memoria predeterminadas que pueden ser insuficientes para la carga de trabajo.

Para resolver los errores Out of Memory Java Heap, puede aumentar el tamaño del montón de Java mediante la modificación de la variable de entorno KAFKA_OPTS para incluir la configuración de memoria.

El siguiente ejemplo establece el tamaño máximo del montón en 1 GB (-Xmx1G). Puede ajustar este valor en función de la memoria del sistema disponible y de los requisitos.

export KAFKA_OPTS="-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf -Xmx1G"

Para consumir temas de gran tamaño, considere el uso de parámetros basados en tiempo o en desplazamientos, en lugar de --from-beginning, con el fin de limitar el uso de memoria.

<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --max-messages 1000 --consumer.config client_sasl.properties