Adding KStream sample applications
Add sample for the canonical WordCount Showing how to track group of products Showing how to implement interactive queries Fix #41 Update scst versions Enhance kstream samples
This commit is contained in:
committed by
Ilayaperumal Gopinathan
parent
30a0c1d734
commit
a2fea3a188
46
kstream/kstream-interactive-query/README.adoc
Normal file
46
kstream/kstream-interactive-query/README.adoc
Normal file
@@ -0,0 +1,46 @@
|
||||
== What is this app?
|
||||
|
||||
This is an example of a Spring Cloud Stream processor using Kafka Streams support.
|
||||
|
||||
The example is based on a contrived use case of tracking products by interactively querying their status.
|
||||
The program accepts product ID's and track their counts hitherto by interactively querying the underlying store. \
|
||||
This sample uses lambda expressions and thus requires Java 8+.
|
||||
|
||||
==== Starting Kafka in a docker container
|
||||
|
||||
* Skip steps 1-3 if you already have a non-Docker Kafka environment.
|
||||
|
||||
1. Go to the docker directory in this repo and invoke the command `docker-compose up -d`.
|
||||
2. Ensure that in the docker directory and then invoke the script `start-kafka-shell.sh`
|
||||
3. cd $KAFKA_HOME
|
||||
4. Start the console producer: +
|
||||
Assuming that you are running kafka on a docker container on mac osx. Change the zookeeper IP address accordingly otherwise. +
|
||||
`bin/kafka-console-producer.sh --broker-list 192.168.99.100:9092 --topic products`
|
||||
|
||||
=== Running the app:
|
||||
|
||||
Go to the root of the repository and do:
|
||||
|
||||
`./mvnw clean package`
|
||||
|
||||
`java -jar target/kstream-interactive-query-0.0.1-SNAPSHOT.jar --kstream.product.tracker.productIds=123,124,125`
|
||||
|
||||
The above command will track products with ID's 123,124 and 125 and print their counts seen so far every 30 seconds.
|
||||
|
||||
* By default we use the docker container IP (mac osx specific) in the `application.yml` for Kafka broker and zookeeper.
|
||||
Change it in `application.yml` (which requires a rebuild) or pass them as runtime arguments as below.
|
||||
|
||||
`spring.cloud.stream.kstream.binder.brokers=<Broker IP Address>` +
|
||||
`spring.cloud.stream.kstream.binder.zkNodes=<Zookeeper IP Address>`
|
||||
|
||||
Enter the following in the console producer (one line at a time) and watch the output on the console (or IDE) where the application is running.
|
||||
|
||||
```
|
||||
{"id":"123"}
|
||||
{"id":"124"}
|
||||
{"id":"125"}
|
||||
{"id":"123"}
|
||||
{"id":"123"}
|
||||
{"id":"123"}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user