Page History
...
Info |
---|
This feature is available from Customerdata Service version 2.0.0 and up. |
How to attach a custom consumer to the queue
To create a custom consumer of the queue we need a running spring application which has a connection to the queue.
Dependencies
Create a Spring application which has the following dependencies:
Code Block | ||||
---|---|---|---|---|
| ||||
... <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-dependencies</artifactId> <version>Chelsea.SR2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency> </dependencies> ... |
Properties
Set the following settings in application.properties to create a connection to the queue. In this example username/password guest is used, you can create an other user. For more information, please check Security.
Code Block | ||
---|---|---|
| ||
spring.cloud.stream.bindings.input.destination = CustomerDataService spring.cloud.stream.bindings.input.group = CustomerDataService spring.cloud.stream.bindings.input.binder = rabbit1 spring.cloud.stream.binders.rabbit1.type = rabbit spring.cloud.stream.binders.rabbit1.environment.spring.rabbitmq.host = localhost spring.cloud.stream.binders.rabbit1.environment.spring.port = 15672 spring.cloud.stream.binders.rabbit1.environment.spring.username = guest spring.cloud.stream.binders.rabbit1.environment.spring.password = guest |
Code
The following piece of example code will consume all events on the queue and print the payload (see function loggerSink
)
Code Block | ||
---|---|---|
| ||
@SpringBootApplication @EnableBinding(Sink.class) @EnableAutoConfiguration public class RabbitConsumerApplication { public static void main(String[] args) { SpringApplication.run(RabbitConsumerApplication.class, args); } @StreamListener(Sink.INPUT) public void loggerSink(String payload) { System.out.println("Received: " + payload); } } |
Test if it works
Now you got a consumer connected to the queue, we need to test if it all works as expected.
Do the following to test if it all works
- Start the Spring application.
- Open the RabbitMQ management interface and navigate to the CustomerDataService queue that was previously created.
- On this page, a message can be created and put on the queue which, if all is configured well, should be picked up by the spring application. Enter the following:
- Press 'Publish message' and check the log of the application, the message should be printed.
Overview
Content Tools