== What you need? == * Java 17 (or 21) SDK * Streams for Apache Kafka 2.7.0 (https://developers.redhat.com/products/streams-for-apache-kafka/download/) * Zookeeper and Broker Configuration (in this directory) * some sort of IDE == What to do with it? == * Create a working directory for the demos. * Extract amq-streams.zip to that directory ** (rename `kafka_2.13-3.7.0.redhat-00007` to `kafka` for ease of use) * Place the config files into the same directory (next to `kafka`). After setup, your working directory should look like this: [subs="+quotes"] ---- $ *ls -l* total 32 -rw-r--r--@ 1 johndoe staff 926 10 Sep 14:31 broker0.properties -rw-r--r--@ 1 johndoe staff 926 10 Sep 14:31 broker1.properties -rw-r--r--@ 1 johndoe staff 926 10 Sep 14:31 broker2.properties drwxr-xr-x@ 9 johndoe staff 288 10 Sep 14:36 kafka/ -rw-r--r--@ 1 johndoe staff 101 10 Sep 14:31 zookeeper.properties ---- == How to start and stop the services? == Start services (each in a separate window): * `./kafka/bin/zookeper-server-start.sh zookeeper.properties` * `./kafka/bin/kafka-server-start.sh broker0.properties` * `./kafka/bin/kafka-server-start.sh broker1.properties` * `./kafka/bin/kafka-server-start.sh broker2.properties` Stop the services in reverse order (broker2 first, etc.) == How to use the cluster? == Use any of the following listeners as your bootstrap server: * `localhost:9092` * `localhost:9192` * `localhost:9292` You can also use all, or some, of them in a comma-separated list: `kafka.bootstrap.servers = localhost:9092,localhost:9192,localhost:9292` == Managing Topics == You can create, delete, and alter topics with the `kafka-topics.sh` command. Creating a topic: [subs="+quotes"] ---- $ *./kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 \* *--topic sample-topic --partitions 9 \* *--replication-factor 3 --config min.insync.replicas=2 --create* ---- Displaying a topic's configuration: [subs="+quotes"] ---- $ *./kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 \* *--topic sample-topic --describe* Topic: sample-topic TopicId: _zItfNPHS9Wzuzo2lh2CdA PartitionCount: 9 ReplicationFactor: 3 Configs: min.insync.replicas=2 Topic: sample-topic Partition: 0 Leader: 0 Replicas: 0,1,2 Isr: 1,2,0 Topic: sample-topic Partition: 1 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0 Topic: sample-topic Partition: 2 Leader: 2 Replicas: 2,0,1 Isr: 1,2,0 Topic: sample-topic Partition: 3 Leader: 0 Replicas: 0,1,2 Isr: 1,2,0 Topic: sample-topic Partition: 4 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0 Topic: sample-topic Partition: 5 Leader: 2 Replicas: 2,0,1 Isr: 1,2,0 Topic: sample-topic Partition: 6 Leader: 0 Replicas: 0,1,2 Isr: 1,2,0 Topic: sample-topic Partition: 7 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0 Topic: sample-topic Partition: 8 Leader: 2 Replicas: 2,0,1 Isr: 1,2,0 ---- Deleting a topic: [subs="+quotes"] ---- $ *./kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 \* *--topic sample-topic --delete* ----