View a markdown version of this page

Administración de metadatos - 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.

Administración de metadatos

Amazon MSK admite los modos de administración de metadatos de Apache ZooKeeper o KRaft.

A partir de la versión 3.7.x de Apache Kafka en Amazon MSK, puede crear clústeres que utilicen el modo KRaft en lugar del modo. ZooKeeper KRaft-based los clústeres dependen de los controladores de Kafka para administrar los metadatos.

ZooKeeper modo

Apache ZooKeeper es «un servicio centralizado para mantener la información de configuración, asignar nombres, proporcionar sincronización distribuida y prestar servicios grupales. Las aplicaciones distribuidas utilizan todos estos tipos de servicios de una forma u otra”, como Apache Kafka.

Si su clúster usa el ZooKeeper modo, puede seguir los pasos que se indican a continuación para obtener la cadena de ZooKeeper conexión de Apache. Sin embargo, le recomendamos que utilice BootstrapServerString para conectarse a su clúster y realizar operaciones de administración, ya que el indicador --zookeeper ha quedado obsoleto en Kafka 2.5 y se ha eliminado de Kafka 3.0.

Obtener la cadena de ZooKeeper conexión de Apache mediante el Consola de administración de AWS

  1. Abra la consola de Amazon MSK en https://console.aws.amazon.com/msk/.

  2. La tabla muestra todos los clústeres de la región actual en esta cuenta. Elija el nombre de un clúster para ver su descripción.

  3. En la página Resumen del clúster, elija Ver información del cliente. Aquí se muestran los agentes de arranque, así como la cadena de ZooKeeper conexión de Apache.

Obtener la cadena de ZooKeeper conexión de Apache mediante el AWS CLI

  1. Si no conocee el nombre de recurso de Amazon (ARN) de su clúster, puede encontrarlo enumerando todos los clústeres de su cuenta. Para obtener más información, consulte Enumeración de clústeres de Amazon MSK.

  2. Para obtener la cadena de ZooKeeper conexión de Apache, junto con otra información sobre su clúster, ejecute el siguiente comando y ClusterArn reemplácelo por el ARN de su clúster.

    aws kafka describe-cluster --cluster-arn ClusterArn

    El resultado de este comando describe-cluster tendrá un aspecto similar al siguiente.

    { "ClusterInfo": { "BrokerNodeGroupInfo": { "BrokerAZDistribution": "DEFAULT", "ClientSubnets": [ "subnet-0123456789abcdef0", "subnet-2468013579abcdef1", "subnet-1357902468abcdef2" ], "InstanceType": "kafka.m5.large", "StorageInfo": { "EbsStorageInfo": { "VolumeSize": 1000 } } }, "ClusterArn": "arn:aws:kafka:us-east-1:111122223333:cluster/testcluster/12345678-abcd-4567-2345-abcdef123456-2", "ClusterName": "testcluster", "CreationTime": "2018-12-02T17:38:36.75Z", "CurrentBrokerSoftwareInfo": { "KafkaVersion": "2.2.1" }, "CurrentVersion": "K13V1IB3VIYZZH", "EncryptionInfo": { "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:555555555555:key/12345678-abcd-2345-ef01-abcdef123456" } }, "EnhancedMonitoring": "DEFAULT", "NumberOfBrokerNodes": 3, "State": "ACTIVE", "ZookeeperConnectString": "10.0.1.101:2018,10.0.2.101:2018,10.0.3.101:2018" } }

    El ejemplo de JSON anterior muestra la clave ZookeeperConnectString en la salida del comando describe-cluster. Copie el valor correspondiente a esta clave y guárdelo para cuando necesite crear un tema en el clúster.

    importante

    Su clúster de Amazon MSK debe estar en ACTIVE ese estado para poder obtener la cadena de ZooKeeper conexión de Apache. Cuando un clúster todavía está en el estado CREATING, la salida del comando describe-cluster no incluye ZookeeperConnectString. Si este es el caso, espere unos minutos y vuelva a ejecutar describe-cluster después de que el clúster alcance el estado ACTIVE.

Obtener la cadena de ZooKeeper conexión de Apache mediante la API

Para obtener la cadena de ZooKeeper conexión de Apache mediante la API, consulte DescribeCluster.

Modo KRaft

Amazon MSK introdujo la compatibilidad con KRaft (Apache Kafka Raft) en la versión 3.7.x de Kafka. La comunidad Apache Kafka desarrolló KrAFT para reemplazar a Apache en la administración de metadatos en los ZooKeeper clústeres de Apache Kafka. En el modo kRaft, los metadatos del clúster se propagan dentro de un grupo de controladores de Kafka, que forman parte del clúster de Kafka, en lugar de entre los nodos. ZooKeeper Los controladores KRaft se incluyen sin costo adicional para usted y no requieren ninguna configuración o administración adicionales por su parte. Consulte KIP-500 para obtener más información sobre KRraft.

Estos son algunos puntos a tener en cuenta sobre el modo KRaft en MSK:

  • Puede migrar los ZooKeeper-based clústeres existentes al modo kRafT mediante la UpdateClusterKafkaVersion API. Para obtener más información, consulte Migre del modo kRafT ZooKeeper al modo KrAFT.

  • En la consola de MSK, puede crear un Kraft-based clúster seleccionando la versión 3.7.x de Kafka y marcando la casilla de verificación KRraft en la ventana de creación del clúster.

  • Para crear un clúster en modo KRaft mediante la API CreateCluster de MSK u operaciones CreateClusterV2, debe usar 3.7.x.kraft como versión. 3.7.xUtilícela como versión para crear un clúster en modo. ZooKeeper

  • El número de particiones por intermediario es el mismo en los clústeres basados en KRraft y en los clústeres ZooKeeper basados. Sin embargo, KRaft le permite alojar más particiones por clúster al aprovisionar más agentes en un clúster.

  • No es necesario realizar cambios en la API para utilizar el modo KRaft en Amazon MSK. Sin embargo, si sus clientes siguen utilizando la cadena de conexión --zookeeper en la actualidad, debe actualizar a sus clientes para que usen la cadena de conexión --bootstrap-server para conectarse a su clúster. El indicador --zookeeper está obsoleto en la versión 2.5 de Apache Kafka y se elimina a partir de la versión 3.0 de Kafka. Por lo tanto, le recomendamos que utilice las versiones recientes del cliente Apache Kafka y la cadena de conexión --bootstrap-server para todas las conexiones a su clúster.

  • ZooKeeper el modo sigue estando disponible para todas las versiones publicadas en las que Apache Kafka también admite zookeeper. Consulte Versiones compatibles de Apache Kafka para obtener más información sobre la finalización de la compatibilidad con las versiones y futuras actualizaciones de Apache Kafka.

  • Debe comprobar que todas las herramientas que utilice sean capaces de utilizar las API de administración de Kafka sin necesidad de conectarse. ZooKeeper Consulte Utilice LinkedIn el control de crucero para Apache Kafka con Amazon MSK para conocer los pasos actualizados para conectar el clúster a Cruise Control. El Cruise Control también tiene instrucciones para ejecutar el Cruise Control sin ZooKeeper él.

  • No necesita acceder directamente a los controladores KRaft de su clúster para realizar alguna acción administrativa. Sin embargo, si utiliza la supervisión abierta para recopilar métricas, también necesitará los puntos de conexión de DNS de sus controladores para recopilar algunas métricas del clúster que no estén relacionadas con los controladores. Puedes obtener estos puntos finales de DNS desde la consola de MSK o mediante la operación de la ListNodes API. Consulte los pasos actualizados Supervisión de un clúster de MSK aprovisionado con Prometheus para configurar la supervisión abierta de los clústeres. KRaft-based

  • No es necesario supervisar ninguna CloudWatch métrica adicional para los clústeres en modo kRaft en comparación con los clústeres en ZooKeeper modo. MSK administra los controladores KRaft que se utilizan en sus clústeres.

  • Puede seguir administrando las ACL utilizando clústeres en modo KRaft mediante la cadena de conexión --bootstrap-server. No debe utilizar la cadena de conexión --zookeeper para administrar las ACL. Consulte ACL de Apache Kafka.

  • En el modo kRaft, los metadatos del clúster se almacenan en los controladores de Kafka de Kafka y no en nodos externos. ZooKeeper Por lo tanto, no es necesario controlar el acceso a los nodos de la controladora por separado, como ocurre con los nodos. ZooKeeper