Usando as ferramentas do console Kafka com o Event Streams
O Apache Kafka é fornecido com várias ferramentas de console para operações simples de administração e de mensagens. É possível usar muitas delas com o Event Streams, mas o Event Streams não permite conexão com seu cluster ZooKeeper. Conforme o Kafka foi desenvolvido, muitas das ferramentas que anteriormente precisavam de conexão com o ZooKeeper não têm mais esse requisito.
Essas ferramentas de console estão no diretório bin do download do Kafka. É possível fazer download de um cliente a partir de Apache Kafka downloads.
Para fornecer as credenciais SASL para essas ferramentas, crie um arquivo de propriedades com base no exemplo a seguir:
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 USER e PASSWORD pelos valores de sua guia Credenciais de serviço do Event Streams no console do IBM Cloud.
Produtor de console
É possível usar a ferramenta produtor de console do Kafka com o Event Streams. Deve-se fornecer uma lista de brokers e credenciais SASL.
Depois de criar o arquivo de propriedades, é possível executar o produtor do console em um terminal conforme a seguir:
kafka-console-producer.sh --broker-list BOOTSTRAP_ENDPOINTS --producer.config CONFIG_FILE --topic TOPIC_NAME
Substitua as variáveis a seguir no exemplo pelos seus próprios valores:
- BOOTSTRAP_ENDPOINTS com o valor a partir da sua guia Event Streams Credenciais de serviço no console IBM Cloud.
- CONFIG_FILE pelo caminho do arquivo de configuração.
É possível usar muitas outras opções dessa ferramenta, exceto aquelas que requerem acesso ao ZooKeeper.
Consumidor de console
É possível usar a ferramenta consumidor de console do Kafka com o Event Streams. Deve-se fornecer um servidor de autoinicialização e credenciais SASL.
Depois de ter criado o arquivo de propriedades conforme descrito anteriormente, execute o consumidor do console em um terminal, conforme a seguir:
kafka-console-consumer.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --consumer.config CONFIG_FILE --topic TOPIC_NAME
Substitua as variáveis a seguir no exemplo pelos seus próprios valores:
- BOOTSTRAP_ENDPOINTS com o valor a partir da sua guia Event Streams Credenciais de serviço no console IBM Cloud.
- CONFIG_FILE pelo caminho do arquivo de configuração.
É possível usar muitas outras opções dessa ferramenta, exceto aquelas que requerem acesso ao ZooKeeper.
Grupos de consumidores
É possível usar a ferramenta grupos de consumidores do Kafka com o Event Streams. Como o Event Streams não permite conexão com seu cluster ZooKeeper, algumas das opções não estão disponíveis.
Depois de ter criado o arquivo de propriedades conforme descrito anteriormente, execute as ferramentas dos grupos de consumidores em um terminal. Por exemplo, é possível listar os grupos de consumidores, conforme a seguir:
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --list --timeout 60000
Substitua as variáveis a seguir no exemplo pelos seus próprios valores:
- BOOTSTRAP_ENDPOINTS com o valor a partir da sua guia Event Streams Credenciais de serviço no console IBM Cloud.
- CONFIG_FILE pelo caminho do arquivo de configuração.
Usando essa ferramenta, também é possível exibir detalhes como as posições atuais dos consumidores, seu atraso ou o ID do cliente para cada partição para um grupo. Por exemplo:
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --describe --group GROUP --timeout 60000
No exemplo, substitua GROUP pelo nome do grupo para o qual você deseja recuperar detalhes.
Veja a saída de amostra a seguir da execução da ferramenta kafka-consumer-groups:
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
consumer-group-1 foo 0 264 267 3 client-1-abc example.com client-1
consumer-group-1 foo 1 124 124 0 client-1-abc example.com client-1
consumer-group-1 foo 2 212 212 0 client-2-def example.com client-2
No exemplo, é possível ver que o grupo de consumidores consumer-group-1 possui dois membros consumidores que consomem mensagens do tópico foo com três partições. Também mostra que o consumidor client-1-abc que está consumindo da partição 0 está três mensagens atrás porque o deslocamento atual do consumidor é 264, mas o deslocamento da última mensagem na partição 0 é 267.
Tópicos
É possível usar a ferramenta kafka-topics com o Event Streams. Assegure-se de usar a V2.8 da ferramenta, pois ela não requer acesso ao Zookeeper.
Um cenário no qual você pode desejar usar kafka-topics é descobrir informações sobre seus tópicos e sua configuração em um cluster existente para que seja possível recriá-los em um novo. As informações obtidas por kafka-topics podem ser usadas para criar os mesmos tópicos mencionados no novo cluster. Para obter mais informações sobre como criar tópicos, consulte Usando a API de administração do cliente Java do Kafka ou o Comando ibmcloud es topic-create. Como alternativa, também é possível usar o console do IBM Event Streams.
Veja a saída de amostra a seguir da execução da ferramenta kafka-tópicos:
bin/kafka-topics.sh --bootstrap-server kafka03-prod01.messagehub.services.us-south.bluemix.net:9093 --command-config vcurr_dal06.properties --describe
Topic:sample-topic PartitionCount:3 ReplicationFactor:3 Configs:min.insync.replicas=2,unclean.leader.election.enable=true,retention.bytes=1073741824,segment.bytes=536870912,retention.ms=86400000
Topic: sample-topic Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
Topic: sample-topic Partition: 1 Leader: 1 Replicas: 1,2,0 Isr: 0,2,1
Topic: sample-topic Partition: 2 Leader: 2 Replicas: 2,1,0 Isr: 0,2,1
Topic:testtopic PartitionCount:1 ReplicationFactor:3 Configs:min.insync.replicas=2,unclean.leader.election.enable=true,retention.bytes=1073741824,segment.bytes=536870912,retention.ms=86400000
Topic: testtopic Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2
Na amostra, é possível ver que o tópico sample-topic tem três partições e um fator de replicação de três. O exemplo também mostra em qual broker o líder de cada partição está e quais réplicas estão em sincronização (Isr).
Por exemplo, o líder da partição 0 está no broker 0, os seguidores estão nos brokers 2 e 1 e todas as três réplicas estão em sincronização. Se você olhar para o segundo tópico testtopic,
ele possui apenas uma partição, que é replicada em intermediários 0, 2 e 1 mas a lista de réplicas in-sync mostra apenas 0 e 2. Isso significa que o seguidor no broker 1 está ficando para trás e, portanto, não está na lista Isr.
Reconfiguração do Kafka Streams
É possível usar essa ferramenta com o Event Streams para reconfigurar o estado de processamento de um aplicativo Kafka Stream, dessa forma, será possível reprocessar sua entrada do zero. Antes de executar essa ferramenta, assegure-se de que seu aplicativo Streams esteja totalmente parado.
Por exemplo:
kafka-streams-application-reset.sh --bootstrap-servers BOOTSTRAP_ENDPOINTS --config-file CONFIG_FILE --application-id APP_ID
Substitua as variáveis a seguir no exemplo pelos seus próprios valores:
- BOOTSTRAP_ENDPOINTS com o valor a partir da sua guia Event Streams Credenciais de serviço no console IBM Cloud.
- CONFIG_FILE pelo caminho do arquivo de configuração.
- APP_ID por seu ID do aplicativo Streams.