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.
Migración desde un registro de esquemas de terceros a AWS Glue Schema Registry
La migración de un registro de esquema de terceros a AWS Glue Schema Registry tiene una dependencia en el registro de esquemas de terceros existente. Si hay registros en un tema de Apache Kafka que se enviaron mediante un registro de esquemas de terceros, los consumidores necesitan el registro de esquemas de terceros para deserializar esos registros. AWSKafkaAvroDeserializer
proporciona la capacidad de especificar una clase de deserializador secundario que apunta al deserializador de terceros y se utiliza para deserializar esos registros.
Existen dos criterios para retirar un esquema de terceros. En primer lugar, el retiro sólo puede ocurrir después de que los registros en temas de Apache Kafka que utilizan el registro de esquemas de terceros ya no sean requeridos por o para un consumidor. En segundo lugar, el retiro puede ocurrir si se eliminan los temas de Apache Kafka, dependiendo del período de retención especificado para esos temas. Tenga en cuenta que si tiene temas que tienen retención infinita, puede migrar a AWS Glue Schema Registry, pero no podrá retirar el registro de esquemas de terceros. Como solución alternativa, puede usar una aplicación o Mirror Maker 2 para leer el tema actual y producir un tema nuevo con AWS Glue Schema Registry.
Migración desde un registro de esquemas de terceros a AWS Glue Schema Registry:
Cree un registro en AWS Glue Schema Registry o utilice el registro predeterminado.
Detenga el consumidor. Modifíquelo para incluir AWS Glue Schema Registry como el deserializador principal y el registro de esquemas de terceros como el secundario.
Configure las propiedades del consumidor. En este ejemplo, el secondary_deserializer (deserializador secundario) se configura en un deserializador diferente. El comportamiento es el siguiente: el consumidor recupera los registros de Amazon MSK y primero intenta utilizar el
AWSKafkaAvroDeserializer
. Si no puede leer el byte mágico que contiene el ID de esquema de Avro para AWS Glue Schema Registry, elAWSKafkaAvroDeserializer
luego intenta usar la clase de deserializador proporcionada en el secondary_deserializer (deserializador secundario). Las propiedades específicas del deserializador secundario también deben proporcionarse en las propiedades del consumidor, como schema_registry_url_config (configuración url de registro de esquema) y specific_avro_reader_config (configuración de lector avro específica), como se muestra a continuación.consumerProps.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); consumerProps.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, AWSKafkaAvroDeserializer.class.getName()); consumerProps.setProperty(AWSSchemaRegistryConstants.AWS_REGION, KafkaClickstreamConsumer.gsrRegion); consumerProps.setProperty(AWSSchemaRegistryConstants.SECONDARY_DESERIALIZER, KafkaAvroDeserializer.class.getName()); consumerProps.setProperty(KafkaAvroDeserializerConfig.SCHEMA_REGISTRY_URL_CONFIG, "
URL for third-party schema registry
"); consumerProps.setProperty(KafkaAvroDeserializerConfig.SPECIFIC_AVRO_READER_CONFIG, "true");
Reinicie el consumidor.
Detenga el productor y dirija al productor a AWS Glue Schema Registry.
Configure las propiedades del productor. En este ejemplo, el productor utilizará las versiones de esquema de registro predeterminado y registro automático.
producerProps.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); producerProps.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, AWSKafkaAvroSerializer.class.getName()); producerProps.setProperty(AWSSchemaRegistryConstants.AWS_REGION, "us-east-2"); producerProps.setProperty(AWSSchemaRegistryConstants.AVRO_RECORD_TYPE, AvroRecordType.SPECIFIC_RECORD.getName()); producerProps.setProperty(AWSSchemaRegistryConstants.SCHEMA_AUTO_REGISTRATION_SETTING, "true");
(Opcional) mueva manualmente los esquemas y las versiones de esquema existentes del registro de esquemas de terceros actual a AWS Glue Schema Registry, ya sea al registro predeterminado en AWS Glue Schema Registry o a un registro no predeterminado específico en AWS Glue Schema Registry. Esto se puede hacer al exportar esquemas de los registros de esquemas de terceros en formato JSON y crear nuevos esquemas en AWS Glue Schema Registry con AWS Management Console o AWS CLI.
Este paso puede ser importante si necesita habilitar las comprobaciones de compatibilidad con versiones de esquema anteriores para las versiones de esquema recién creadas mediante AWS CLI y AWS Management Console, o cuando los productores envían mensajes con un nuevo esquema con la función de registro automático de versiones de esquema activada.
Inicie el productor.