This is a Quarkus implementation of Acme Air, a sample microservice application that emulates an air ticketing system. This is ported from its SpringBoot implementation. The components and their connections are depicted here.
Quarkus is a cloud native Java framework based on modern standard APIs. More information about its fancy features are available at https://quarkus.io/.
This repository includes all five services of Acme Air, though the original five repositories are separated in the BLUEPERF GitHub organization.
This repository also includes configuration files to run the application and its load generator in containers on a local machine or OpneShift cloud environment.
git clone https://github.com/IBM/acmeair-quarkus.git
cd acmeair-quarkus
mvn package
This step builds all five services, and creates docker images of the services and other services like mongodb. It also creates a docker image of the driver, a load generator by using Apache JMeter scenario. The scenario and its JMeter plugin are found in acmeair-driver repository in BLUEPERF.
One of a major feature of Quarkus is native binary support. You can build the five microservices as native binaries
by adding -Pnative
in the Maven command line:
mvn package -Pnative
You can distinguish whether an image is Java version or native version
by checking its image tag. For example, acmeair-mainservice-quarkus:jvm
is a Java version,
and acmeair-mainservice-quarkus:native
is a native version.
Make sure you correctly installed docker engine and docker-compose, and start docker daemon on your machine. The instruction is available here.
Then, create docker network for connecting the microservices and other components:
docker network create --driver bridge my-net
You can pick any name for the network. my-net
is just an example.
Use docker-compose to start containers of all five microservices, three mongodb instances, and an nginx proxy:
NETWORK=my-net docker-compose -f acmeair-mainservice-quarkus/docker-compose.yml up
- Access http://localhost/acmeair with your browser.
- Click a link at the bottom of the page and go to the Acme Air Configuration information page.
- Press the Load the database button in the Actions: bar to load the database for three services.
The application is ready if no error is reported.
The instruction to use driver is described in driver/Readme.md.