Mac
- Make sure you are navigated inside the bin directory.
- Start up the Zookeeper.
./zookeeper-server-start.sh ../config/zookeeper.properties - Add the below properties in the server.properties
listeners=PLAINTEXT://localhost:9092 auto.create.topics.enable=false - Start up the Kafka Broker
./kafka-server-start.sh ../config/server.properties ./kafka-topics.sh --create --topic test-topic -zookeeper localhost:2181 --replication-factor 1 --partitions 4 Here, test-topic is a topic name. Here --replication-factor 1 refers to how many ZooKeeper replicates for this topic. Here --partitions 4 refers to how many partitions you would like to create for this topic.
./kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic ./kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic --property "key.separator=-" --property "parse.key=true" ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning -property "key.separator= - " --property "print.key=true" ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --group <group-name> Windows
- Make sure you are inside the bin/windows directory.
- Start up the Zookeeper.
zookeeper-server-start.bat ..\..\config\zookeeper.properties - Start up the Kafka Broker.
kafka-server-start.bat ..\..\config\server.properties kafka-topics.bat --create --topic test-topic -zookeeper localhost:2181 --replication-factor 1 --partitions 4 kafka-console-producer.bat --broker-list localhost:9092 --topic test-topic kafka-console-producer.bat --broker-list localhost:9092 --topic test-topic --property "key.separator=-" --property "parse.key=true" TIP
- Here the parameter
--property "key.separator=-"is to identify the message key character. In this case it's-(Hyphen). - Here the parameter
--property "parse.key=true"is to parse the key and send it to the corresponding partition.
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --from-beginning kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --from-beginning -property "key.separator= - " --property "print.key=true" TIP:
- Here
--from-beginningis a parameter where it will request consumer to consume messages from the beginning of the given topictest-topic. - If you don't specify
--from-beginningyour new messages will be displayed in any order. Because, those messages are stored in different partitions. - Message ordering is guaranteed at the partition level
- If you want to consume messages which is stored in the specific key partition, use
-property "key.separator= - " - When you print message with key then use this property
--property "print.key=true"
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --group <group-name> -
The first step is to add a new server.properties.
-
We need to modify three properties to start up a multi broker set up.
broker.id=<unique-broker-d> listeners=PLAINTEXT://localhost:<unique-port> log.dirs=/tmp/<unique-kafka-folder> auto.create.topics.enable=false - Example config will be like below.
broker.id=1 listeners=PLAINTEXT://localhost:9093 log.dirs=/tmp/kafka-logs-1 auto.create.topics.enable=false - Provide the new server.properties thats added.
./kafka-server-start.sh ../config/server-1.properties ./kafka-server-start.sh ../config/server-2.properties Mac
./kafka-topics.sh --zookeeper localhost:2181 --list - The below command can be used to describe all the topics.
./kafka-topics.sh --zookeeper localhost:2181 --describe - The below command can be used to describe a specific topic.
./kafka-topics.sh --zookeeper localhost:2181 --describe --topic <topic-name> ./kafka-topics.sh --alter --zookeeper localhost:2181 --topic library-events --config min.insync.replicas=2 ./kafka-topics.sh --zookeeper localhost:2181 --delete --topic test-topic ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group console-consumer-27773 ./kafka-run-class.sh kafka.tools.DumpLogSegments --deep-iteration --files /tmp/kafka-logs/test-topic-0/00000000000000000000.log ./kafka-configs.sh --alter --zookeeper localhost:2181 --entity-type topics --entity-name test-topic --add-config min.insync.replicas=2 Windows
- Make sure you are inside the bin/windows directory.
kafka-topics.bat --zookeeper localhost:2181 --list - The below command can be used to describe all the topics.
kafka-topics.bat --zookeeper localhost:2181 --describe - The below command can be used to describe a specific topic.
kafka-topics.bat --zookeeper localhost:2181 --describe --topic <topic-name> kafka-topics.bat --alter --zookeeper localhost:2181 --topic library-events --config min.insync.replicas=2 kafka-topics.bat --zookeeper localhost:2181 --delete --topic <topic-name> kafka-consumer-groups.bat --bootstrap-server localhost:9092 --list kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --group console-consumer-27773 kafka-run-class.bat kafka.tools.DumpLogSegments --deep-iteration --files /tmp/kafka-logs/test-topic-0/00000000000000000000.log Install "Spring Assistant" plugin in IntelliJ IDE