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.
| 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.