O Apache Kafka® sempre teve uma forma para determinar cotas para produtores e consumidores, os conhecidos Clients Kafka. Estas configurações eram feitas diretamente no Zookeeper e a partir da versão 2.6.0 isso foi melhorado.
A KIP-546 define como deve ser a nova implementação da Admin API e um novo comando para o Kafka CLI, o kafka-client-quotas
.
Vejamos como definir cotas para o usuário conta_corrente
.
Antes
O comando é um pouco confuso e altamente propenso a erros, além da configuração ser diretamente aplicada no Zookeeper. E como sabemos, na versão 3.0 do Apache Kafka® ele será totalmente removido e substituído por uma implementação baseada no protocolo Raft.
1
2
3
4
5
kafka-configs.sh --zookeeper localhost:2181 \
--alter \
--add-config 'consumer_byte_rate=2048' \
--entity-type users \
--entity-name conta_corrente
Agora
Sem depender diretamente do Zookeeper, agora executamos todas as interações através do broker. Ou seja, mais um passo dado em direção a sua remoção.
Além de ser mais intutivo.
1
2
3
4
kafka-client-quotas.sh --bootstrap-server localhost:9092 \
--alter
--names='user=conta_corrente' \
--add='consumer_byte_rate=2048'
Photo by Denys Nevozhai on Unsplash