GH-65: Add polled-consumer Sample
Resolves https://github.com/spring-cloud/spring-cloud-stream-samples/issues/65 Polishing - PR Comments - add docker-compose - change runner to process multiple messages
This commit is contained in:
committed by
Soby Chacko
parent
477d712214
commit
a2f642ebe4
57
processor-samples/polled-consumer/README.md
Normal file
57
processor-samples/polled-consumer/README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
Spring Cloud Stream Polled Consumer with Embedded Kafka Broker Sample
|
||||
=====================================================================
|
||||
|
||||
In this *Spring Cloud Stream* sample, an embedded kafka broker is used for testing a polled consumer.
|
||||
|
||||
## Requirements
|
||||
|
||||
To run this sample, you will need to have installed:
|
||||
|
||||
* Java 8 or Above
|
||||
|
||||
## Code Tour
|
||||
|
||||
This sample is a Spring Boot application that uses Spring Cloud Stream to receive a `String` message and forward an upper case version of that String; it uses the Kafka binder.
|
||||
It uses a Polled Consumer (rather than a message-driven `@StreamListener`).
|
||||
|
||||
* PolledConsumerApplication - the Spring Boot Main Application
|
||||
* PolledConsumerApplicationTests - the test case
|
||||
|
||||
The `spring-kafka-test` dependency added to the `pom.xml` puts the `KafkaEmbedded` JUnit `@Rule` on the class path.
|
||||
Refer to the [Spring for Apache Kafka Reference Manual](http://docs.spring.io/spring-kafka/reference/htmlsingle/#testing) for more information about this.
|
||||
Notice how the `@BeforeClass` method sets up the Boot and binder properties to locate the servers.
|
||||
|
||||
See the test method for the details on interacting with Embedded Kafka.
|
||||
The test method starts by sending a message to the input destination.
|
||||
It then creates a consumer to consume from the output destination; gets the output message and asserts that it's an upper case version of the sent message.
|
||||
|
||||
## Building with Maven
|
||||
|
||||
Build the sample and run the test by executing:
|
||||
|
||||
`./mvnw clean package`
|
||||
|
||||
or run the test in your favorite IDE.
|
||||
|
||||
=== Running the app:
|
||||
|
||||
Go to the root of the repository and do:
|
||||
|
||||
`docker-compose up -d`
|
||||
|
||||
`./mvnw clean package`
|
||||
|
||||
`java -jar target/polled-consumer-0.0.1-SNAPSHOT.jar`
|
||||
|
||||
Then send/receive messages to/from the topics.
|
||||
|
||||
`$ docker exec -it kafka-polledconsumer /opt/kafka/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic polledConsumerIn`
|
||||
|
||||
On another terminal:
|
||||
|
||||
and
|
||||
|
||||
`$ docker exec -it kafka-polledconsumer /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic polledConsumerOut --from-beginning`
|
||||
|
||||
Once you are done testing, stop the Kafka cluster: `docker-compose down`
|
||||
|
||||
Reference in New Issue
Block a user