Descripción general de los conectores

En la siguiente tabla, se enumeran los tipos de conectores de Kafka Connect que admite Managed Service para Apache Kafka. Puedes usar estos conectores para integrar Apache Kafka con tus aplicaciones y con otros servicios de Google Cloud.

Conector Descripción Casos de uso
Receptor de BigQuery Transmite datos de temas de Kafka a una tabla de BigQuery. Almacenamiento de datos, estadísticas
Fuente de Cloud SQL para PostgreSQL Lee los cambios a nivel de fila de una base de datos de Cloud SQL para PostgreSQL y los escribe en Kafka. Integración de bases de datos, supervisión y respuesta a eventos de bases de datos
Receptor de Cloud Storage Transmite datos de temas de Kafka a un bucket de Cloud Storage. Transferencia de data lakes y archivado de datos
Fuente de PostgreSQL genérica Lee los cambios a nivel de fila de una base de datos de PostgreSQL y los escribe en Kafka. Integración de bases de datos, supervisión y respuesta a eventos de bases de datos
Punto de control de MirrorMaker 2.0 Copia los desplazamientos de consumidores de un clúster de Kafka a otro. Replicación de datos, recuperación ante desastres y migración de datos
Señal de monitoreo de funcionamiento de MirrorMaker 2.0 Genera mensajes de latido periódicos y los escribe en un tema. Supervisar el estado del clúster, la conectividad de red o la latencia de replicación de extremo a extremo entre clústeres
Fuente de MirrorMaker 2.0 Replica temas y datos de un clúster de Kafka a otro. Replicación de datos, recuperación ante desastres y migración de datos
Receptor de Pub/Sub Transmite datos de temas de Kafka a un tema de Pub/Sub. Integración de servicios y notificaciones en tiempo real
Fuente de Pub/Sub Transmite mensajes de una suscripción de Pub/Sub a un tema de Kafka. Transferencia de datos en tiempo real, arquitecturas controladas por eventos

Usuarios que generan conversiones

Los convertidores son responsables de la serialización y deserialización de los datos de registro de Kafka. Traducen entre el formato de bytes sin procesar que se encuentra en los temas de Kafka y la representación de datos interna y estructurada que usa Kafka Connect.

  • En el caso de los conectores de receptor, los convertidores deserializan los datos del formato de conexión del tema al formato de datos interno de Kafka Connect, que el conector usa para escribir en el sistema de destino.

  • En el caso de los conectores de origen, los convertidores serializan los datos del formato de datos interno de Kafka Connect al formato de conexión especificado para el tema de Kafka.

Los convertidores garantizan que el conector lea o escriba los registros de Kafka en un formato compatible con el sistema externo.

Cuando configures un conector, establece las siguientes propiedades:

  • Conversor de claves (key.converter): Es el conversor que se usará cuando se serialicen y deserialicen las claves de registro de Kafka.

  • Convertidor de valores (value.converter): Es el convertidor que se usará cuando se serialicen y deserialicen los valores de los registros de Kafka.

Si no especificas un conversor, el tipo de conversor predeterminado es org.apache.kafka.connect.converters.ByteArrayConverter, que pasa los datos en su formato de bytes sin procesar.

Conversores compatibles

Managed Service para Apache Kafka admite los siguientes convertidores integrados:

Usuario que generó una conversiónFormato
io.confluent.connect.avro.AvroConverter Apache Avro
org.apache.kafka.connect.converters.BooleanConverter Booleano
org.apache.kafka.connect.converters.ByteArrayConverter

Array de bytes

Es el tipo de conversor predeterminado. Conserva el contenido exacto de los mensajes en dos sistemas.

org.apache.kafka.connect.converters.DoubleConverter Doble
org.apache.kafka.connect.converters.FloatConverter Número de punto flotante
org.apache.kafka.connect.converters.IntegerConverter Número entero
org.apache.kafka.connect.json.JsonConverter

JSON

Para los datos JSON sin un esquema, también configura value.converter.schemas.enable=false.

org.apache.kafka.connect.converters.LongConverter Largo
org.apache.kafka.connect.converters.ShortConverter Brevedad normal
org.apache.kafka.connect.storage.StringConverter String

La elección del convertidor depende del tipo de conector y de los datos que almacenas en Kafka. Para obtener más información, consulta la documentación del conector específico.

Tasks

Un conector transfiere datos creando una o más tareas que operan en paralelo. Para establecer un límite superior en la cantidad de tareas que crea un conector, establece la propiedad de configuración tasks.max del conector. El conector puede crear menos tareas que este valor.

Aumentar el valor de tasks.max puede mejorar la capacidad de procesamiento, pero también aumentar el consumo de recursos (CPU y memoria). El valor óptimo depende de la carga de trabajo y de los recursos asignados a los trabajadores del clúster de Connect. En el caso de los conectores receptores, la cantidad de particiones de temas de Kafka también puede afectar el paralelismo.

Política de reinicio de tareas

Puedes establecer la política de reinicio de tareas de un conector, que determina el comportamiento cuando se produce una falla. Los conectores admiten las siguientes políticas:

  • No reiniciar nunca. El conector no reinicia las tareas con errores. Esta política es el comportamiento predeterminado. Es útil para la depuración o en situaciones en las que se requiere intervención manual después de un error.

  • Reinicia con una retirada exponencial. El conector reinicia una tarea con errores después de un retraso (llamado período de retirada). La demora aumenta de forma exponencial con cada falla posterior. Esta política se recomienda para la mayoría de las cargas de trabajo de producción.

    Si usas la política de retirada exponencial, también establece valores para la retirada mínima y máxima. La retirada mínima debe ser superior a 60 segundos, y la retirada máxima debe ser inferior a 7,200 segundos.

Transformaciones y predicados

Managed Service para Apache Kafka admite las transformaciones y los predicados predeterminados de Kafka Connect.

Las transformaciones te permiten modificar mensajes individuales antes de que se envíen a Managed Service para Apache Kafka (para conectores de origen) o al sistema externo (para conectores de destino). Puedes usar una transformación para enmascarar datos sensibles, agregar marcas de tiempo o cambiar el nombre de los campos.

Los predicados te permiten filtrar datos según condiciones específicas, lo que determina a qué mensajes se aplica una transformación según las propiedades de los mensajes.

Por ejemplo, para configurar un conector de receptor de modo que ignore los mensajes que contienen una clave de encabezado DoNotProcess, agrega la siguiente configuración:

transforms=dropMessage
transforms.dropMessage.type=org.apache.kafka.connect.transforms.Filter
transforms.dropMessage.predicate=hasKey
predicates=hasKey
predicates.hasKey.type=org.apache.kafka.connect.transforms.predicates.HasHeaderKey
predicates.hasKey.name=DoNotProcess

Esta configuración hace lo siguiente:

  1. Configura un predicado llamado hasKey de tipo org.apache.kafka.connect.transforms.predicates.HasHeaderKey. Este predicado coincide con todos los mensajes que contienen un encabezado con la clave DoNotProcess.

  2. Configura una transformación llamada dropMessage del tipo org.apache.kafka.connect.transforms.Filter. Esta transformación descarta todos los mensajes que coinciden con el predicado configurado.

  3. Vincula la transformación al predicado hasKey. Esto garantiza que la transformación solo descarte los mensajes con la clave de encabezado DoNotProcess presente.

Próximos pasos

Apache Kafka® es una marca registrada de The Apache Software Foundation o sus afiliados en Estados Unidos y otros países.