es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Excepción de serialización de Avro utilizando el Registro de Esquemas.

Tengo un esquema en el Registro que ha sido creado por Kafka Connect. También estoy intentando publicar programáticamente en el tema de Kafka pertinente al esquema (usando TopicRecordNameStrategy), utilizando la definición exacta del esquema que existe en el registro en mi aplicación Java, siendo el caso de uso la republicación automática de mensajes retrasados.

¿Cómo es posible, por tanto, que al utilizar el esquema exacto que ya existe, me lance la excepción: “El esquema que se está registrando no es compatible con un esquema anterior; código de error: 409”? El esquema es idéntico, como ha sido confirmado por comparación JSON.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “Esquema que se está registrando no es compatible con un esquema anterior; código de error: 409” indica que hay un conflicto entre el esquema que se está utilizando en su aplicación Java y el esquema que ya ha sido registrado en el Registro de esquemas Kafka. A pesar de que los dos esquemas parezcan ser idénticos al compararlos en JSON, aún pueden haber pequeñas diferencias, como las diferencias en el orden de los campos o en el uso de campos opcionales vs campos obligatorios, que pueden causar un problema de compatibilidad.

    Para resolver el problema, debes considerar una de las siguientes opciones:

    1. Usar la API REST del Registro de Esquemas para recuperar el esquema que ya ha sido registrado y compararlo con el esquema que se está utilizando en su aplicación Java para identificar cualquier diferencia. Una vez que se hayan solucionado cualquier diferencia, el esquema se puede registrar utilizando el esquema compatible.
    2. Usar el complemento Maven del Registro de Esquemas para registrar el esquema directamente desde su aplicación Java, asegurándose de que el esquema que se está utilizando sea idéntico al que se está registrando. Esto evitará cualquier problema de compatibilidad causado por las diferencias entre los esquemas.

    3. Actualiza el nivel de compatibilidad en el Registro de Esquemas para permitir conflictos de compatibilidad. Aunque esto no se recomienda, puede ser una solución rápida para permitir que los mensajes retrasados se publiquen automáticamente. Sin embargo, es importante tener en cuenta que esto puede resultar en problemas de compatibilidad de datos en el futuro.

    En general, es importante garantizar que el esquema que se está utilizando en su aplicación Java sea compatible con el esquema que se ha registrado en el Registro de Esquemas Kafka, ya sea actualizando el esquema o el registro, para evitar cualquier problema de compatibilidad.

Comments are closed.