aws-camelk/README.md

41 lines
2.1 KiB
Markdown
Raw Normal View History

2025-02-24 16:30:52 +08:00
# Microservices with Camel Quarkus
This project shows four microservices implemented using Apache Camel on Quarkus,
as follows:
- ```aws-camelk-file```: this microservice is polling the ```/tmp/input``` local folder and, as soon as an XML file is comming, it store it in an AWS S3 bucket, which name starts with ```mys3``` followed by a random suffix.
- ```aws-camelk-s3```: this microservice is listening on the first found AWS S3 bucket which name starts with ```mys3``` and, as soon as an XML file comes in, it splits, tokenizes and streams it, before sending each message to an AWS SQS queue, which name is ```myQue```.
- ```aws-camelk-sqs```: this microservice subscribes for messages to the AWS SQS queue named ```myQueue``` and, for each incoming message, unmarshall it from XML to Java objects, the marshal it to JSON format, before sending it to the REST service below.
- ```aws-camelk-jaxrs```: this microservice exposes a REST API having endpoint for CRUDing money transfer orders. It consumes/produces JSON input/output data. It uses a service which exposes and interface defined by ```aws-camelk-api``` project. Several implementations of this interface might be present but, for simplicity sake, in the current case we're using the one defined by ```aws-camelk-provider``` project, named ```DefaultMoneyTransferProvider```, which only CRUds the money transfer order requests in an in-memory hash map.
## Deploying and running locally the microservices
In order to deploy and run the miroservices locally, proceed as follows:
### Clone the project from GitHub
Here are the steps required to clone the project:
$ git clone https://github.com/nicolasduminil/aws-camelk.git
$ cd aws-camelk
### Start the microservices
In order to start the microservices, run the following script:
$ ./start-ms.sh
### Stop the microservices
In order to stop the microservices, run the following script:
$ ./kill-ms.sh
### Cleaning up the AWS infrastructure
In order to clean up the AWS infrastructure, run the commands below:
$ ./delete-all-buckets.sh
$ ./purge-sqs-queue.sh
$ ./delete-sqs-queue.sh