Apache Kafka

Usa el conector de Kafka para integrarlo 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 crear activadores cuando se reciben mensajes en un tema.

Versiones compatibles

El conector de Apache Kafka aprovecha las bibliotecas de cliente nativas para establecer una conexión con un clúster de Kafka determinado. 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 empezar

Antes de usar el conector de Apache Kafka, haz lo siguiente:

  • En tu proyecto de Google Cloud:
    • Asegúrate de que la conectividad de red esté configurada. Para obtener información sobre los patrones de red, consulta Conectividad de red.
    • Concede el rol de gestión de identidades y accesos roles/connectors.admin al usuario que configure el conector.
    • Concede los siguientes roles de gestión de identidades y accesos a la cuenta de servicio que quieras usar para el conector:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Una cuenta de servicio es un tipo especial de cuenta de Google diseñada para representar a un usuario no humano que necesita autenticarse y disponer de autorización para acceder a los datos de las APIs de Google. Si no tienes una cuenta de servicio, debes crearla. El conector y la cuenta de servicio deben pertenecer al mismo proyecto. Para obtener más información, consulta el artículo Crear una cuenta de servicio.

    • Habilita los siguientes servicios:
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Para saber cómo habilitar servicios, consulta Habilitar servicios.

    Si estos servicios o permisos no se han habilitado en tu proyecto anteriormente, se te pedirá que los habilites al configurar el conector.

Configurar el conector

Una conexión es específica de una fuente de datos. Esto significa que, si tiene muchas fuentes de datos, debe crear una conexión independiente para cada una de ellas. Para crear una conexión, sigue estos pasos:

  1. En la consola de Cloud, ve a la página Integration Connectors > Connections (Conectores de integración > Conexiones) y, a continuación, selecciona o crea un proyecto de Google Cloud.

    Ve a la página Conexiones.

  2. Haz clic en + CREAR NUEVA para abrir la página Crear conexión.
  3. En el paso Ubicación, elige la ubicación de la nueva conexión de Apache Kafka:
    1. Región: selecciona una región de la lista.
    2. Haz clic en Siguiente.
  4. En el paso Detalles de la conexión, proporcione información sobre la nueva conexión de Apache Kafka:
    1. Versión del conector: elige una versión disponible del conector de Apache Kafka de la lista.
    2. Nombre de la conexión: introduce un nombre para la conexión de Apache Kafka.
    3. (Opcional) Descripción: escribe una descripción de la conexión.
    4. (Opcional) Habilita Cloud Logging: marca esta casilla para almacenar todos los datos de registro de la conexión.
    5. Cuenta de servicio: selecciona una cuenta de servicio con los roles de gestión de identidades y accesos necesarios para la conexión de Apache Kafka.
    6. La opción Habilitar suscripción a eventos, entidades y acciones está seleccionada de forma predeterminada para la conexión de Apache Kafka.
    7. Tipo de esquema de detección: selecciona MessageOnly.
    8. Servicio de registro: servicio de registro de esquemas que se usa para trabajar con esquemas de temas.
    9. Tipo de registro: tipo de esquema especificado para un tema concreto.
    10. Versión del registro: versión del esquema leído de RegistryUrl para el tema especificado.
    11. Usuario del registro: nombre de usuario o valor de la clave de acceso para autorizar el acceso al servidor especificado en RegistryUrl.
    12. Contraseña de registro: secreto de Secret Manager que contiene el valor de la clave de contraseña o secreto para autorizar el acceso al servidor especificado en RegistryUrl.
    13. Si quieres, configura los ajustes del nodo de conexión:

      • Número mínimo de nodos: introduce el número mínimo de nodos de conexión.
      • Número máximo de nodos: introduce el número máximo de nodos de conexión.

      Un nodo es una unidad (o réplica) de una conexión que procesa transacciones. Se necesitan más nodos para procesar más transacciones en una conexión y, a la inversa, se necesitan menos nodos para procesar menos transacciones. Para saber cómo influyen los nodos en el precio de tu conector, consulta la sección Precios de los nodos de conexión. Si no introduces ningún valor, de forma predeterminada, el número mínimo de nodos se establece en 2 (para mejorar la disponibilidad) y el máximo en 50.

    14. También puedes hacer clic en + AÑADIR ETIQUETA para añadir una etiqueta a la conexión en forma de par clave-valor.
    15. Habilitar SSL: este campo determina si SSL está habilitado.
    16. Haz clic en Siguiente.
  5. En la sección Destinations (Destinos), introduce los detalles del servidor de arranque de Kafka al que quieras conectarte.
    1. 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 introduce la dirección en el campo Host 1.
      • Para establecer una conexión privada, selecciona Endpoint attachment (Endpoint adjunto) y elige el adjunto que quieras de la lista Endpoint Attachment (Endpoint adjunto).

      Si quieres establecer una conexión pública con tus sistemas backend con seguridad adicional, puedes configurar direcciones IP de salida estáticas para tus conexiones y, a continuación, configurar las reglas de tu cortafuegos para que solo se permitan las direcciones IP estáticas específicas.

      Para especificar servidores de arranque de Kafka adicionales, haga clic en + AÑADIR DESTINO.

    2. Haz clic en Siguiente.
  6. En la sección Autenticación, introduce los detalles de autenticación.
    1. Seleccione un Tipo de autenticación e introduzca los detalles pertinentes.

      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: secreto de Secret Manager que contiene la contraseña asociada al nombre de usuario de Apache Kafka.
        • Esquema de autenticación: el esquema usado para la autenticación.

          La conexión de Apache Kafka admite los siguientes esquemas de autenticación:

          • Normal
          • SCRAM-SHA-1
          • SCRAM-SHA-256
      • No disponible

        Si quieres usar el inicio de sesión anónimo, selecciona No disponible.

    2. Haz clic en Siguiente.
  7. Introduce la configuración de la cola de mensajes fallidos. Si configura mensajes fallidos, la conexión escribe los eventos no procesados en el tema de Pub/Sub especificado. Introduzca los siguientes detalles:
    1. ID de proyecto de mensajes fallidos: el ID del proyecto de Google Cloud en el que has configurado el tema de mensajes fallidos de Pub/Sub.
    2. Tema de mensajes fallidos: el tema de Pub/Sub en el que quieres escribir los detalles del evento no procesado.
  8. Haz clic en Siguiente.
  9. Revisar: revisa los detalles de la conexión y la autenticación.
  10. 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 mejorar la 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 datos Descripción
Tema Cadena Nombre del tema en el que quieres publicar el mensaje.
Partición No Cadena La partición a la que se asigna el mensaje. El valor debe ser válido para el tema en cuestión. Si no lo define, el cliente nativo lo definirá automáticamente.
Clave No Cadena La clave del mensaje.
Mensaje Cadena El mensaje que quieres publicar. El mensaje debe ser un JSON convertido en cadena y el tamaño máximo admitido es de 10 MB.
HasBytes No Booleano Especifica si el mensaje está en formato binario.
MessageBytes No Cadena El mensaje en forma de cadena codificada en Base64.
Validar No Booleano Especifica si el mensaje que se va a publicar debe validarse con el esquema de mensaje definido en el registro de esquemas del tema. Si has especificado el registro de esquemas al crear 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.

Parámetros de salida

Nombre del parámetro Tipo de datos Descripción
PartitionWritten Entero La partición en la que se escribió el mensaje.
OffsetWritten Long Posición de la partición en la que se ha escrito el mensaje.
TimestampWritten Long Hora (marca de tiempo de Unix) en la que se confirmó el mensaje en la partición.
KeyWritten Cadena El valor de la clave del mensaje que se ha escrito. El valor es NULL si no se ha proporcionado ninguna clave de mensaje al escribir el mensaje.
Correcto Booleano Especifica si se ha publicado el mensaje.

A continuación, se muestra un ejemplo de respuesta 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 ligeramente de los pasos documentados anteriormente para Apache Kafka. Ten en cuenta los siguientes puntos al crear una conexión para Confluent Cloud:

  • La clave de API del clúster de Confluent Cloud se usa como nombre de usuario y el secreto de Secret Manager de la clave se usa como contraseña para conectarse a los servidores de arranque. Debes crear una clave de API en Confluent Cloud si aún no la tienes.
  • Selecciona Usar SSL en la sección Connection Details.
  • Si usas un registro de esquemas, configura los siguientes valores:
    • En la sección Connection Details:
      • Versión del registro: introduce el número de versión del registro. Si quieres usar la versión más reciente, introduce latest.
      • Usuario del registro: introduce la clave de API del registro de esquemas. Si aún no tienes una, debes crear una clave de API de registro de esquemas.
      • Contraseña del registro: introduce el secreto de Secret Manager de la contraseña del registro.
      • Versión del secreto: selecciona el número de versión del secreto.
      • Tipo de registro: selecciona Confluent.
      • Tipo de esquema de detección: selecciona MessageOnly.
    • En la sección Destinations, introduce la URL del registro en el campo de nombre de host.

    Crear conexiones con Terraform

    Puedes usar el recurso de Terraform para crear una conexión.

    Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

    Para ver una plantilla de Terraform de ejemplo para crear una conexión, consulta la plantilla de ejemplo.

    Cuando crees esta conexión con Terraform, debes definir las siguientes variables en el archivo de configuración de Terraform:

    Nombre del parámetro Tipo de datos Obligatorio Descripción
    type_detection_scheme ENUM Verdadero Esquema utilizado para la autenticación con el broker de Apache Kafka. Los valores admitidos son: MessageOnly
    registry_service ENUM Falso El servicio de registro de esquemas que se usa para trabajar con esquemas de temas. Los valores admitidos son: Confluent
    registry_type ENUM Falso Tipo de esquema especificado para un tema concreto. Los valores admitidos son AVRO y JSON.
    registry_version STRING Falso Versión del esquema leído de RegistryUrl para el tema especificado. Los valores válidos de la versión del registro están comprendidos entre [1,2^31-1] o la cadena "latest", que devuelve el último esquema registrado.
    registry_user STRING Falso Nombre de usuario para autorizar el acceso al servidor especificado en RegistryUrl .
    registry_password SECRET Falso Secreto de Secret Manager que contiene el valor de la contraseña o la clave secreta para autorizar el acceso al servidor especificado en RegistryUrl.
    usessl BOOLEAN Falso Este campo indica si SSL está habilitado.

    Usar la conexión de Apache Kafka en una integración

    Una vez que hayas creado la conexión, estará disponible tanto en Apigee Integration como en Application Integration. Puedes usar la conexión en una integración a través de la tarea Conectores.

    • Para saber cómo crear y usar la tarea Conectores en la integración de Apigee, consulta Tarea Conectores.
    • Para saber cómo crear y usar la tarea Conectores en Application Integration, consulta Tarea Conectores.

    Obtener ayuda de la comunidad de Google Cloud

    Puedes publicar tus preguntas y hablar sobre este conector en la comunidad de Google Cloud, en los foros de Cloud.

    Siguientes pasos