Apache Kafka
Usa el conector de Kafka para realizar la integración con Apache Kafka y publicar mensajes en temas específicos. El conector de Kafka también admite la suscripción a eventos, lo que permite la creación de activadores cuando se reciben mensajes en un tema.
Versiones compatibles
El conector de Apache Kafka aprovecha las bibliotecas cliente nativas para establecer una conexión con un clúster de Kafka determinado, y el conector funciona con la versión 3.3.1 del cliente. Sin embargo, el conector puede establecer conectividad con clústeres de Kafka de las versiones 3.0 a 3.3.1.
Antes de comenzar
Antes de usar el conector de Apache Kafka, realiza las siguientes tareas:
- En tu proyecto de Google Cloud, haz lo siguiente:
- Asegúrate de que la conectividad de red esté configurada. Para obtener información sobre los patrones de red, consulta Conectividad de red.
- Otorga el rol de IAM roles/connectors.admin al usuario que configura el conector.
- Otorga los siguientes roles de IAM a la cuenta de servicio que deseas usar para el conector:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
Una cuenta de servicio es un tipo de Cuenta de Google especial que representa a un usuario no humano que debe autenticarse y tener autorización para acceder a los datos de las APIs de Google. Si no tienes una cuenta de servicio, debes crear una. Para obtener más información, consulta Crea una cuenta de servicio.
- Habilita los siguientes servicios:
secretmanager.googleapis.com
(API de Secret Manager)connectors.googleapis.com
(API de conectores)
Para comprender cómo habilitar servicios, consulta Habilita servicios.
Si estos servicios o permisos no se habilitaron antes para tu proyecto, se te solicitará que los habilites cuando configures el conector.
Configura el conector
Una conexión es específica de una fuente de datos. Significa que, si tienes muchas fuentes de datos, debes crear una conexión independiente para cada fuente. Para crear una conexión, haz lo siguiente:
- En la consola de Cloud, ve a la página Conectores de Integration > Conexiones y, luego, selecciona o crea un proyecto de Google Cloud.
- Haz clic en + CREAR NUEVO para abrir la página Crear conexión.
- En el paso Ubicación, elige la ubicación para la nueva conexión de Apache Kafka:
- Región: Selecciona una región de la lista.
- Haz clic en Siguiente.
- En el paso Detalles de la conexión, proporciona detalles sobre la nueva conexión de Apache Kafka:
- Versión del conector: Elige una versión disponible del conector de Apache Kafka en la lista.
- Nombre de la conexión: Ingresa un nombre para la conexión de Apache Kafka.
- (Opcional) Descripción: Ingresa una descripción para la conexión.
- (Opcional) Habilita Cloud Logging: Selecciona esta casilla de verificación para almacenar todos los datos de registro de la conexión.
- Cuenta de servicio: Selecciona una cuenta de servicio con los roles de IAM necesarios para la conexión de Apache Kafka.
- La opción Habilitar acciones, entidad y suscripción al evento está seleccionada de forma predeterminada para la conexión de Apache Kafka.
- Esquema de detección de tipos: Selecciona
MessageOnly
. - Servicio de registro: El servicio de Registro de esquemas que se usa para trabajar con esquemas de temas.
- Tipo de registro: Es el tipo de esquema especificado para un tema determinado.
-
Versión del registro: Es la versión del esquema que se lee de
RegistryUrl
para el tema especificado. -
Usuario de registro: Valor de nombre de usuario o clave de acceso que se autorizará con el servidor que se especifica en
RegistryUrl
. -
Contraseña del registro: El Secret de Secret Manager que contiene la contraseña o el valor de la clave secreta para autorizar con el servidor especificado en
RegistryUrl
. - De manera opcional, configura los parámetros de nodo de conexión:
- Cantidad mínima de nodos: Ingresa la cantidad mínima de nodos de conexión.
- Cantidad máxima de nodos: Ingresa la cantidad máxima de nodos de conexión.
Un nodo es una unidad (o réplica) de una conexión que procesa transacciones. Se requieren más nodos para procesar más transacciones para una conexión y, del mismo modo, se requieren menos para procesar menos transacciones. Para comprender cómo los nodos afectan el precio del conector, consulta Precios de nodos de conexión. Si no ingresas ningún valor, se establecen de forma predeterminada los nodos mínimos en 2 (para una mejor disponibilidad) y los nodos máximos se establecen en 50.
- De forma opcional, haz clic en + AGREGAR ETIQUETA para agregar una etiqueta a la conexión en forma de un par clave-valor.
- Enable SSL: Este campo configura si SSL está habilitado.
- Haz clic en Siguiente.
- En la sección Destinos, ingresa los detalles del servidor de arranque de Kafka al que deseas conectarte.
- Tipo de destino: Selecciona un Tipo de destino.
- Para especificar el nombre de host o la dirección IP de destino, selecciona Dirección de host y, luego, ingresa la dirección en el campo Host 1.
- Para establecer una conexión privada, selecciona Adjunto de extremo y elige el adjunto requerido de la lista Adjunto de extremo.
Si deseas establecer una conexión pública con tus sistemas de backend con seguridad adicional, puedes configurar direcciones IP salientes estáticas para tus conexiones y, luego, configurar tus reglas de firewall para permitir solo las direcciones IP estáticas específicas.
Para especificar servidores de arranque de Kafka adicionales, haz clic en + AGREGAR DESTINO.
- Haz clic en Siguiente.
- Tipo de destino: Selecciona un Tipo de destino.
-
En la sección Autenticación, ingresa los detalles de autenticación.
- Selecciona un Tipo de autenticación y, luego, ingresa los detalles relevantes.
La conexión de Apache Kafka admite los siguientes tipos de autenticación:
-
Nombre de usuario y contraseña
- Nombre de usuario: El nombre de usuario de Apache Kafka que se usará para la conexión.
- Contraseña: El Secret de Secret Manager que contiene la contraseña asociada con el nombre de usuario de Apache Kafka.
- Esquema de autenticación: Es el esquema que se usa para la autenticación.
La conexión de Apache Kafka admite los siguientes esquemas de autenticación:
- Plain
- SCRAM-SHA-1
- SCRAM-SHA-256
-
No disponible
Si deseas usar un acceso anónimo, selecciona No disponible.
-
Nombre de usuario y contraseña
- Haz clic en Siguiente.
- Selecciona un Tipo de autenticación y, luego, ingresa los detalles relevantes.
- Ingresa la configuración de mensajes no entregados. Si configuras mensajes no entregados, la conexión escribe los eventos sin procesar en el tema de Pub/Sub especificado. Ingresa los siguientes detalles:
- ID del proyecto de mensajes no entregados: Es el ID del proyecto de Google Cloud en el que configuraste el tema de Pub/Sub de mensajes no entregados.
- Tema de mensajes no entregados: Es el tema de Pub/Sub en el que deseas escribir los detalles del evento no procesado.
- Haz clic en Siguiente.
- Revisa: Revisa tus detalles de conexión y autenticación.
- Haz clic en Crear.
Limitaciones del sistema
El conector de Apache Kafka puede procesar un máximo de 50 transacciones por segundo, por nodo, y limita las transacciones que superen este límite. De forma predeterminada, Integration Connectors asigna 2 nodos (para una mejor disponibilidad) a una conexión.
Para obtener información sobre los límites aplicables a Integration Connectors, consulta Límites.
Acciones
Acción PublishMessage
Esta acción publica un mensaje en un tema de Apache Kafka. En las siguientes tablas, se describen los parámetros de entrada y salida de la acción PublishMessage
.
Parámetros de entrada
Nombre del parámetro | Obligatorio | Tipo de dato | Descripción |
---|---|---|---|
Tema | Sí | Cadena | Nombre del tema al que deseas publicar el mensaje. |
Partición | No | String | Es la partición a la que se asigna el mensaje. El valor debe ser válido para el tema determinado. Si no estableces este valor, el cliente nativo lo establecerá automáticamente. |
Clave | No | String | Es la clave del mensaje. |
Mensaje | Sí | Cadena | Es el mensaje que deseas publicar. El mensaje debe ser un JSON en cadena y el tamaño máximo del mensaje es de 10 MB. |
HasBytes | No | Booleano | Especifica si el mensaje está en formato binario. |
MessageBytes | No | String | Es el mensaje en forma de una cadena codificada en Base64. |
Validar | No | Booleano | Especifica si el mensaje que se publicará debe validarse en función del esquema de mensajes definido en el registro de esquemas del tema. Si especificaste el registro de esquemas cuando creaste una conexión, se usará la definición del esquema del tema del registro para la validación. El valor predeterminado de este campo es false |
Los parámetros de resultado
Nombre del parámetro | Tipo de dato | Descripción |
---|---|---|
PartitionWritten | Número entero | Es la partición en la que se escribió el mensaje. |
OffsetWritten | Largo | Es la posición en la partición en la que se escribió el mensaje. |
TimestampWritten | Largo | Es la hora (marca de tiempo de Unix) en la que se confirmó el mensaje en la partición. |
KeyWritten | String | Es el valor de la clave del mensaje que se escribió. El valor es NULL si no se proporcionó ninguna clave de mensaje cuando se escribió el mensaje. |
Listo | Booleano | Especifica si se publicó el mensaje. |
A continuación, se muestra una respuesta de ejemplo de la acción PublishMessage
:
{Success: true, PartitionWritten: 1, OffsetWritten: 22301, KeyWritten: "dGVzdA==", TimestampWritten: 1690806748}
Configuración de Confluent Cloud
La configuración de Confluent Cloud difiere un poco de los pasos documentados con anterioridad para Apache Kafka. Ten en cuenta los siguientes puntos cuando crees una conexión para Confluent Cloud:
- La clave de API de clúster de Confluent Cloud se usa como nombre de usuario y el Secret de Secret Manager de la clave se usa como contraseña para conectarse a los servidores de arranque. Si aún no la tienes, debes crear una clave de API en Confluent Cloud.
- Selecciona Usar SSL en la sección
Connection Details
. - Si usas el registro de esquemas, configura los siguientes valores:
- En la sección
Connection Details
:- Versión del registro: Ingresa el número de versión del registro. Si quieres usar la versión más reciente, ingresa
latest
. - Usuario del registro: Ingresa la clave de API del registro de esquema. Si aún no la tienes, debes crear una clave de API del registro de esquema.
- Contraseña del registro: Ingresa el Secret de Secret Manager de la contraseña de registro.
- Versión del secreto: Selecciona el número de versión del secreto.
- Tipo de registro: Selecciona
Confluent
. - Esquema de detección de tipos: Selecciona
MessageOnly
.
- Versión del registro: Ingresa el número de versión del registro. Si quieres usar la versión más reciente, ingresa
- En la sección
Destinations
, ingresa la URL del registro en el campo de nombre de host.
Crea conexiones con Terraform
Puedes usar el recurso de Terraform para crear una conexión nueva.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Para ver una plantilla de Terraform de ejemplo para la creación de conexiones, consulta la plantilla de ejemplo.
Cuando crees esta conexión con Terraform, debes establecer las siguientes variables en tu archivo de configuración de Terraform:
Nombre del parámetro Tipo de datos Obligatorio Descripción type_detection_scheme ENUM Verdadero Es el esquema que se usa para la autenticación con el agente de Apache Kafka. Los valores admitidos son MessageOnly. registry_service ENUM Falso Es el servicio de Registro de esquemas que se usa para trabajar con esquemas de temas. Los valores admitidos son: Confluent registry_type ENUM Falso Es el tipo de esquema especificado para un tema específico. Los valores admitidos son AVRO y JSON. registry_version STRING Falso Es la versión del esquema que se lee de RegistryUrl para el tema especificado. Los valores válidos para la versión del registro están entre [1,2^31-1] o la cadena "latest", que devuelve el último esquema registrado. registry_user STRING Falso Nombre de usuario para autorizar con el servidor especificado en RegistryUrl . registry_password SECRET Falso Secret de Secret Manager que contiene la contraseña o el valor de la clave secreta para autorizar con el servidor especificado en RegistryUrl. usessl BOOLEAN Falso Este campo configura si SSL está habilitado. Usa la conexión de Apache Kafka en una integración
Después de crear la conexión, estará disponible en la integración de Apigee y en Application Integration. Puedes usar la conexión en una integración a través de la tarea Connectors.
- Para comprender cómo crear y usar la tarea Connectors en Apigee Integration, consulta Tarea Connectors.
- Para comprender cómo crear y usar la tarea Connectors en Application Integration, consulta Tarea Connectors.
Obtén ayuda de la Comunidad de Google Cloud
Puedes publicar tus preguntas y debatir sobre este conector en la comunidad de Google Cloud en Cloud Forums.¿Qué sigue?
- Obtén información para suspender y reanudar una conexión.
- Obtén información para supervisar el uso del conector.
- Comprende cómo ver los registros del conector.
- En la sección