Monday, May 29, 2023

kcat/kafkacat komutu

Giriş
Yeni ismi kcat eski ismi kafkacat

1. Kurulum
Şöyle yaparız
# Linux 
sudo apt-get update
sudo apt-get install kafkacat

# macOS 
brew install kafkacat
1. Consume a Message
Söz dizimi şöyle. -C ile consume yapılır
kafkacat -b <broker> -t <topic> -C
-b: Specify Kafka broker(s).
-t: Specify the target topic.
-C: Enter the consumer mode.
Açıklaması şöyle
The -C option tells Kafkacat to consume messages in continuous mode.
Config Dosyası
-F seçeneği belirtilen config dosyasını okur
Örnek
kafkacat.config dosyası şöyle olsun
bootstrap.servers=<KAFKA_SERVICE_URI>
security.protocol=ssl
ssl.key.location=kafkacerts/service.key
ssl.certificate.location=kafkacerts/service.cert
ssl.ca.location=kafkacerts/ca.pem
Şöyle yaparız. -C ile consumer gibi çalışır. -t ile belirtilen topic'ten okur
kafkacat -F kafkacat.config -C -t pg_source_football_players
Setting Consumer Group and Client ID
-C G ve -C C kullanılır
Örnek
Şöyle yaparız
kafkacat -b <broker> -t <topic> -C -G <consumer_group> -C -C <client_id>
-G: Specify the consumer group.
-C: Specify the client ID.
Consume from a Specific Offset
-o seçeneği kullanılır
Örnek
Şöyle yaparız
kafkacat -b <broker> -t <topic> -C -o <offset>
-o: Specify the offset to start consuming from.
Örnek - Latest
Şöyle yaparız
afkacat -b <broker> -t <topic> -C -o -1
-o -1: Consume from the latest offset.
Örnek - Latest
Şöyle yaparız
afkacat -b <broker> -t <topic> -C -o -1
-o -1: Consume from the latest offset.
Örnek - Earliest 
Şöyle yaparız
kafkacat -b <broker> -t <topic> -C -o -2
-o -2: Consume from the earliest offset.
Security
Örnek 
Şöyle yaparız
kafkacat -b <broker> -t <topic> 
  -C -X security.protocol=SASL_SSL 
  -X sasl.mechanisms=PLAIN 
  -X sasl.username=<your_username> 
  -X sasl.password=<your_password> 
  --consumer.config <path_to_config_file>

-b: Specify Kafka broker(s).
-t: Specify the topic to consume from.
-C: Enter consumer mode.
-X security.protocol=SASL_SSL: Set the security protocol to SASL_SSL.
-X sasl.mechanisms=PLAIN: Specify the SASL mechanism.
-X sasl.username=<your_username>: Provide your SASL username.
-X sasl.password=<your_password>: Provide your SASL password.
--consumer.config <path_to_config_file>: Specify the path to a consumer 
Mesaj Formatı
-C - s seçeneği ile mesaj formatı belirtilir

Örnek
Şöyle yaparız. -s key= s ile key'in string, -s value=avro ile value'nun avro olduğu belirtilir
docker run --tty \
--network postgres-docker_default \
confluentinc/cp-kafkacat \
kafkacat -b kafka:9092 -C \
-s key=s -s value=avro \
-r http://schema-registry:8081 \
-t postgres.public.shipments
Açıklaması şöyle
This command will start a Kafkacat container in interactive mode (--tty). The container will be connected to the postgres-docker_default network. The confluentinc/cp-kafkacat image will be used to create the container.

The kafkacat command will be used to consume messages from the Kafka topic shipments. The -b option specifies the bootstrap server for Kafka. The -C option tells Kafkacat to consume messages in continuous mode.

The -s option specifies the schema for the messages. The key=s option specifies that the key of the message should be encoded as a string. The value=avro option specifies that the value of the message should be encoded as Avro.

The -r option specifies the URL of the schema registry. The schema registry is used to store the schemas for the messages in Kafka.

The -t option specifies the table in PostgreSQL where the messages should be stored. The postgres.public.shipments table is the name of the table.
3. Produce a Message 
Söz dizimi şöyle. -P ile produce yapılır
kafkacat -b <broker> -t <topic> -P
-b: Specify Kafka broker(s).
-t: Specify the target topic.
-P: Enter the producer mode.
-P seçeneği
Şöyle yaparız. -P ile producer gibi çalışır. -t ile belirtilen topice yazar
echo test-message-content | kcat -F kcat.config -P -t test-topic -k test-message-key
Message Manipulation
Örnek -Copy Messages from One Topic to Another
Şöyle yaparız
kafkacat -b <broker> -t <source_topic> -C | kafkacat -b <broker> -t <destination_topic> -P




No comments:

Post a Comment

kafka-consumer-groups.sh komutu

Giriş Bir topic'i dinleyen consumer'ları gösterir. Aynı topic'i dinleyen consumer group'ları olabilir. Her topic farklı part...