Consumir menssagens da Amazon MQ com Apache Camel em aplicação Spring Boot

1. Overview
Neste artigo, nós veremos como consumir mensages de uma fila da Amazon Mq com uma aplicação Spring Boot.
OBS: Não irei explicar como realizar a configuração de um serviço Amazon MQ neste artigo veremos apenas como configurar e consumir mensagens em uma aplicação spring boot.
Pode conferir como configurar um serviço ActiveMQ na AWS here: Getting started with Amazon MQ.
2. Queue
Uma fila, permite que apenas um consumidor receba — consuma — cada mensaem publicada na fila da mensageria.
3. Spring Boot App
Podemos utilizar o site spring initializr para gerar nossa aplicação;
Precisaremos das seguintes dependências:
- spring-boot-starter-activemq;
- activemq-camel;
- spring-boot-starter-web
E também:
- Maven;
- Java 8;
- Spring Boot 2.4.2

3.1. Properties
Em nosso arquivo de propriedades da nossas aplicação — podendo ele ser: application.properties ou application.yml — , precisaremos das seguites propriedades:

spring.activemq.broker.url: quando criamos um serviço Amazon Mq a AWS nos fornece alguns tipos de conexões. Neste artigo utilizaremos a conexão SSL;
spring.activemq.user: usuário para conectar na Amazon MQ;
spring.activemq.password: senha para a aplicação se conectar à Amazon MQ;
spring.activemq.queue.name: nome da fila que queremos criar um listener e consumir as mensagens;
spring.activemq.in-memory: configurar como false, pois o Spring executa um ActiveMQ em memória por padrão.
As outras configurações não nos importa aqui.
3.2. Bean Configuration
Para nos conectar ao serviço Amazon Mq precisamos criar um bean com o código abaixo:
3.3. Apache Camel Consumer
Para consumir a mensagem publicada iremos utilizar a bibliotea Apache Camel com o código abaixo:
Código simple e de fácil compreensão.
Pronto…nossa aplicação está preparada para consumir mensagens publicadas em uma fila de um serviço Amazon MQ.
4. Conclusion
Simples, não acha?!
Precisamos prestar atenção quanto as configurações de acesso da AWS, para garantir que o serviço possui uma porta aberta para que sua aplicação se conecte corretamente.
Irei escrever um artigo, sobre as configurações de um serviço Amazon Mq. Que irá complementar este artigo.
Espero que tenha gostado e que seja util.
Github do projeto deste artigo: https://github.com/msilvadev/awsmq-consuming