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 proporcionar servicios grupales. Las aplicaciones distribuidas utilizan todos estos tipos de servicios de una forma u otra”, como Apache Kafka.

Si su clúster utiliza 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 el clúster, ejecute el siguiente comando y ClusterArn sustitúyalo por el ARN del 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 que pueda 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 de Apache Kafka desarrolló KrAFT para sustituir a Apache ZooKeeper en la gestión de metadatos en los 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 propagarse entre 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-500para obtener más información sobre KrAFt.

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

  • El modo KRaft solo está disponible para clústeres nuevos. Una vez creado el clúster, no se puede cambiar de modo de metadatos.

  • 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 KrAFT 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 agente es el mismo en los clústeres de KrAFT 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 Zookeeper también es compatible con Apache Kafka. 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 puedan utilizar las API de administración de Kafka sin conexiones. 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 incluye instrucciones para ejecutar el Cruise Control sin ZooKeeper ella.

  • 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 MSK o mediante la operación de la ListNodesAPI. 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 hay CloudWatch métricas adicionales que debas monitorizar para los clústeres en modo KrAFT sobre 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 KrAFT de Kafka y no en nodos externos. ZooKeeper Por lo tanto, no necesita controlar el acceso a los nodos del controlador por separado como lo hace con los nodos. ZooKeeper