Grega Bremec 4e6722a15a reorg lab stuff 10 months ago
..
README.adoc 4e6722a15a reorg lab stuff 10 months ago
broker0.properties 4e6722a15a reorg lab stuff 10 months ago
broker1.properties 4e6722a15a reorg lab stuff 10 months ago
broker2.properties 4e6722a15a reorg lab stuff 10 months ago
connect.properties 4e6722a15a reorg lab stuff 10 months ago
postgres-source-connector.properties 4e6722a15a reorg lab stuff 10 months ago
zookeeper.properties 4e6722a15a reorg lab stuff 10 months ago

README.adoc

== 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*
----