Utilización de Kafka Connect con Event Streams
Kafka Connect es parte del proyecto Apache Kafka y permite conectar sistemas externos a Kafka. Consiste en un tiempo de ejecución que puede ejecutar conectores para copiar datos hacia y desde un clúster. Sus principales características son:
- Escalabilidad: puede escalar fácilmente de un solo trabajador a muchos.
- Fiabilidad: gestiona automáticamente los desplazamientos y el ciclo de vida de los conectores.
- Extensibilidad: La comunidad construyó conectores para los sistemas más populares. IBM® tiene conectores para MQ y Cloud Object Storage.
Puede utilizar Kafka Connect con IBM® Event Streams for IBM Cloud® y puede ejecutar los trabajadores dentro o fuera de IBM Cloud®. IBM tiene una amplia lista de más de 50 conectores soportados por IBM o la comunidad. Encontrará estos conectores en el catálogo de conectores.
Kafka Connect se puede ejecutar tanto en modalidad autónoma como en modalidad distribuida. La modalidad autónoma está pensada para pruebas y para conexiones temporales entre sistemas. La modalidad distribuida resulta más adecuada para uso en producción. La configuración necesaria para utilizar Event Streams con estas dos modalidades es ligeramente diferente.
Configuración de un nodo trabajador autónomo
El nodo trabajador autónomo no utiliza ningún tema interno. En su lugar, utiliza un archivo para almacenar la información de desplazamiento.
Debe proporcionar los servidores de programa de arranque y la información de credenciales de SASL en el archivo de propiedades del nodo trabajador que suministra cuando inicia un nodo trabajador autónomo de Kafka Connect. En el siguiente ejemplo se muestran las propiedades que debe especificar en el archivo de propiedades:
bootstrap.servers=BOOTSTRAP_ENDPOINTS
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
ssl.protocol=TLSv1.2
ssl.enabled.protocols=TLSv1.2
ssl.endpoint.identification.algorithm=HTTPS
Sustituya BOOTSTRAP_ENDPOINTS, USER y PASSWORD por los valores de su Event Streams Credenciales de servicio ficha en la IBM Cloud consola.
Conector de origen
En el siguiente ejemplo se muestran las propiedades que debe especificar en el archivo de propiedades:
bootstrap.servers=BOOTSTRAP_ENDPOINTS
producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
producer.security.protocol=SASL_SSL
producer.sasl.mechanism=PLAIN
producer.ssl.protocol=TLSv1.2
producer.ssl.enabled.protocols=TLSv1.2
producer.ssl.endpoint.identification.algorithm=HTTPS
Sustituya BOOTSTRAP_ENDPOINTS, USER y PASSWORD por los valores de su Event Streams Credenciales de servicio ficha en la IBM Cloud consola.
Conector sink
En el siguiente ejemplo se muestran las propiedades que debe especificar en el archivo de propiedades:
bootstrap.servers=BOOTSTRAP_ENDPOINTS
consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
consumer.security.protocol=SASL_SSL
consumer.sasl.mechanism=PLAIN
consumer.ssl.protocol=TLSv1.2
consumer.ssl.enabled.protocols=TLSv1.2
consumer.ssl.endpoint.identification.algorithm=HTTPS
Sustituya BOOTSTRAP_ENDPOINTS, USER y PASSWORD por los valores de su Event Streams Credenciales de servicio ficha en la IBM Cloud consola.
Configuración de un nodo trabajador distribuido
Debe proporcionar los servidores de programa de arranque y la información de credenciales de SASL en el archivo de propiedades que suministra cuando inicia los nodos trabajadores distribuidos de Kafka Connect. En el siguiente ejemplo se muestran las propiedades que debe especificar en el archivo de propiedades:
bootstrap.servers=BOOTSTRAP_ENDPOINTS
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
ssl.protocol=TLSv1.2
ssl.enabled.protocols=TLSv1.2
ssl.endpoint.identification.algorithm=HTTPS
Sustituya BOOTSTRAP_ENDPOINTS, USER y PASSWORD por los valores de su Event Streams Credenciales de servicio ficha en la IBM Cloud consola.
Si desea utilizar un conector de origen, también debe especificar la configuración de SSL y SASL correspondiente al productor del siguiente modo:
producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
producer.security.protocol=SASL_SSL
producer.sasl.mechanism=PLAIN
producer.ssl.protocol=TLSv1.2
producer.ssl.enabled.protocols=TLSv1.2
producer.ssl.endpoint.identification.algorithm=HTTPS
Si desea utilizar un conector sink, también debe especificar la configuración de SSL y SASL correspondiente al consumidor del siguiente modo:
consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
consumer.security.protocol=SASL_SSL
consumer.sasl.mechanism=PLAIN
consumer.ssl.protocol=TLSv1.2
consumer.ssl.enabled.protocols=TLSv1.2
consumer.ssl.endpoint.identification.algorithm=HTTPS
Además Kafka Connect en modalidad distribuida utiliza tres temas internamente. Estos temas se crean automáticamente cuando se arranca el nodo trabajador, si utiliza Kafka Connect en Apache Kafka versión 0.11 o posterior. Los nombres de los temas
se especifican como parámetros de configuración. Asegúrese de que los valores coincidan para todos los nodos trabajadores con el valor de configuración group.id.
| Configuración | Descripción |
|---|---|
offset.storage.topic |
Tema de desplazamientos de conector |
offset.storage.partitions |
Número de particiones para tema de desplazamientos de conector (valor predeterminado 25) |
config.storage.topic |
Tema de configuración de conector |
status.storage.topic |
Tema de estado de conector |
status.storage.partitions |
Número de particiones para tema de estado de conector (valor predeterminado 5) |
Por ejemplo, puede utilizar los siguientes pares clave-valor en su archivo de propiedades:
offset.storage.topic=connect-offsets
config.storage.topic=connect-configs
status.storage.topic=connect-status
Considere la posibilidad de reducir el número de particiones si no utiliza mucho Kafka Connect.
Para obtener más información sobre Kafka Connect, consulte Visión general deKafka Connect.