Usando o Kafka Connect com o Event Streams

O Kafka Connect faz parte do projeto Apache Kafka e permite conectar sistemas externos ao Kafka. Ele consiste em um tempo de execução que pode executar conectores para copiar dados de e para um cluster. Suas principais características são:

  • Escalabilidade: pode escalar facilmente de um único trabalhador para muitos.
  • Confiabilidade: gerencia automaticamente os deslocamentos e o ciclo de vida dos conectores.
  • Extensibilidade: A comunidade construiu conectores para os sistemas mais populares. O IBM® tem conectores para MQ e Cloud Object Storage.

É possível usar o Kafka Connect with IBM® Event Streams for IBM Cloud® e executar os trabalhadores dentro ou fora do IBM Cloud®. O IBM tem uma lista extensiva de mais de 50 conectores que são suportados pelo IBM ou pela comunidade. Esses conectores estão no catálogo do conector.

O Kafka Connect pode ser executado em modo independente ou distribuído. O modo independente deve ser usado para teste e conexões temporárias entre os sistemas. O modo distribuído é mais apropriado para uso em produção. A configuração requerida para usar o Event Streams com esses dois modos é um pouco diferente.

Configuração do trabalhador independente

O trabalhador independente não usa nenhum tópico interno. Em vez disso, ele usa um arquivo para armazenar informações de compensação.

Deve-se fornecer os servidores de autoinicialização e as informações de credenciais SASL no arquivo de propriedades do trabalhador que você fornece ao iniciar um trabalhador independente do Kafka Connect. O exemplo a seguir lista as propriedades que devem ser fornecidas em seu arquivo de propriedades:

    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

Substitua BOOTSTRAP_ENDPOINTS, USER e PASSWORD pelos valores da guia Event Streams Service Credentials no console IBM Cloud.

Conector de origem

O exemplo a seguir lista as propriedades que devem ser fornecidas em seu arquivo de propriedades:

    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

Substitua BOOTSTRAP_ENDPOINTS, USER e PASSWORD pelos valores da guia Event Streams Service Credentials no console IBM Cloud.

Conector sink

O exemplo a seguir lista as propriedades que devem ser fornecidas em seu arquivo de propriedades:

    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

Substitua BOOTSTRAP_ENDPOINTS, USER e PASSWORD pelos valores da guia Event Streams Service Credentials no console IBM Cloud.

Configuração do trabalhador distribuído

Deve-se fornecer os servidores de autoinicialização e informações das credenciais SASL no arquivo de propriedades fornecido quando você iniciar os trabalhadores distribuídos Kafka Connect. O exemplo a seguir lista as propriedades que devem ser fornecidas em seu arquivo de propriedades:

    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

Substitua BOOTSTRAP_ENDPOINTS, USER e PASSWORD pelos valores da guia Event Streams Service Credentials no console IBM Cloud.

Caso queira usar um conector de origem, também se deve especificar a configuração SSL e SASL para o produtor, como a seguir:

    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

Se você desejar usar um conector sink, também deverá especificar a configuração SSL e SASL para o consumidor, conforme a seguir:

    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

Além disso, o Kafka Connect no modo distribuído usa três tópicos internamente. Esses tópicos serão criados automaticamente quando um trabalhador for inicializado, se você usar o Kafka Connect no Apache Kafka versão 0.11 ou mais recente. Você fornece os nomes dos tópicos como parâmetros de configuração. Assegure-se de que os valores sejam os mesmos para todos os trabalhadores com o mesmo valor de configuração group.id.

Tópicos no Kafka Connect
Configuração Descrição
offset.storage.topic Tópico de deslocamentos do conector
offset.storage.partitions Número de partições para o tópico de deslocamentos do conector (padrão 25)
config.storage.topic Tópico de configuração do conector
status.storage.topic Tópico de status do conector
status.storage.partitions Número de partições para o tópico de status do conector (padrão 5)

Por exemplo, é possível usar os seguintes pares chave-valor em seu arquivo de propriedades:

    offset.storage.topic=connect-offsets
    config.storage.topic=connect-configs
    status.storage.topic=connect-status

Considere reduzir o número de partições se estiver fazendo somente o uso leve do Kafka Connect.

Para obter mais informações sobre o Kafka Connect, veja Kafka Connect overview.