Testes realizados com o Kafka na versão utilizada em produção 1.1.0.
Esta versão é antiga e estamos planejando a migração para a versão 2 do Kafka em produção.
Os comandos abaixo podem mudar para a versão 2 do Kafka.
Assuntos:
- Setup inicial
- Brokers
- Network
Servers:
# inside docker network
KAFKA_SERVERS=kafka-0:9092,kafka-1:9092,kafka-2:9092
ZOOKEEPER_SERVERS=zookeeper:2181
# on host:
KAFKA_SERVERS=localhost:19090,localhost:19091,localhost:19092
ZOOKEEPER_SERVERS=localhost:2181
Comandos:
# start do cluster
docker-compose up -d zookeeper
docker-compose up -d
Assuntos:
- Criação de tópicos
- Réplicas + Leaders + InSync
- Rebalance
Comandos:
source env.sh
# verificar metadados do cluster
docker run --rm --net=host confluentinc/cp-kafkacat \
kafkacat -L -b "${KAFKA_SERVERS}"
# criar tópico TESTE
kafka-topics.sh \
--zookeeper "${ZOOKEEPER_SERVERS}" \
--topic TESTE \
--create \
--replication-factor=2 \
--partitions=16
# consumir tópico TESTE
kafka-console-consumer.sh \
--bootstrap-server "${KAFKA_SERVERS}" \
--topic TESTE \
--group TEST_GROUP
# produzir no tópico TESTE
kafka-console-producer.sh \
--broker-list "${KAFKA_SERVERS}" \
--topic TESTE
# distribuição das partições entre consumidores
kafka-consumer-groups.sh \
--bootstrap-server 127.0.0.1:19090 \
--group TEST_GROUP \
--describe |\
awk '{print $1,$6}' | sort | uniq -c
Assuntos:
- partition size
- partition offset
- fetch
- session timeout
- heartbeat
Assuntos:
- UIs
- metrics
- perf
- consumer js (https://kafka.js.org/docs/consumer-example)
- producer js (https://kafka.js.org/docs/producer-example)
Comandos:
source env.sh
# produtor
kafka-producer-perf-test.sh \
--topic TESTE \
--num-records 50000 \
--record-size 512 \
--throughput 400 \
--producer-props \
acks=1 \
bootstrap.servers=${KAFKA_SERVERS} \
batch.size=64
# consumidor
kafka-consumer-perf-test.sh \
--broker-list "${KAFKA_SERVERS}" \
--topic TESTE \
--group PERF_GROUP \
--messages 50000 \
--threads 1
Assuntos:
- kafkajs: configurations
- heartbeat
- lag test
Assuntos:
- teste integrado com microsserviços