Posts Tópicos Internos vs. Tópicos de Usuário
Post
Cancel

Tópicos Internos vs. Tópicos de Usuário

Os tópicos internos, ou internal topics em inglês, são tópicos especiais criados automaticamente no Apache Kafka® para persistência de offsets, schemas, para manunteção do estado das operações sobre streams e até para o gerencimento de transações.

Exemplos:

  • __consumer_offsets
  • __transaction_state
  • __schemas: somente com Schema Registry
  • {consumer-group}--KSTREAM-JOINOTHER-0000000005-store-changelog

E os tópicos de usuários, ou user topics em inglês, são aqueles criados para persitência dos eventos das aplicações. Exemplo:

1
2
3
4
5
6
kafka-topics.sh --create \  
  --bootstrap-server 'localhost:9092' \
  --replication-factor 1 \
  --partitions 7 \
  --topic 'meu-topico-teste' \
  --config 'retention.ms=-1'

Ambos podem ser consumidos por qualquer aplicação interessada ou serem descritos com o kafka-topics:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
kafka-topics.sh --describe \
    --topic '__consumer_offsets' \
    --bootstrap-server 'localhost:9092'

# Exemplo da saída
Topic: __consumer_offsets	PartitionCount: 50	ReplicationFactor: 1	Configs: compression.type=producer,cleanup.policy=compact,segment.bytes=104857600
	Topic: __consumer_offsets	Partition: 0	Leader: 1	Replicas: 1	Isr: 1
	Topic: __consumer_offsets	Partition: 1	Leader: 1	Replicas: 1	Isr: 1
	Topic: __consumer_offsets	Partition: 2	Leader: 1	Replicas: 1	Isr: 1
	Topic: __consumer_offsets	Partition: 3	Leader: 1	Replicas: 1	Isr: 1
	Topic: __consumer_offsets	Partition: 4	Leader: 1	Replicas: 1	Isr: 1
	Topic: __consumer_offsets	Partition: 5	Leader: 1	Replicas: 1	Isr: 1
	Topic: __consumer_offsets	Partition: 6	Leader: 1	Replicas: 1	Isr: 1
# . . .

Por fim, Kafka Streams faz uso massivo de tópicos internos e isto significa que se a segurança estiver habilitada no cluster Apache Kafka®, será necessário conceder permissões de Admin.

Veja como conceder essas permissões nesta documentação

Até os próximos comparativos e avaliações!


Photo by Jonas Svidras on Unsplash

Este post é licenciado sob CC BY 4.0 pelo autor.