Example of converting (legacy) async service to sync.
Directly run the DevApp. All the tweaks can be done with the code.
Can be run using the fat jar.
Create jar:
./mvnw clean package
Or skip tests:
./mvnw clean package -Dmaven.test.skip=true
Run with java:
java -jar target/starter-1.0.0-SNAPSHOT-fat.jar -cluster -cluster-public-port 17001 -cluster-public-host <YOUR-MACHINE-IP> -instance 4
Important notes:
The -cluster
ensures verticles are running in cluster mode, so the event bus can communicate with all the verticles even if they are running in different machines.
-cluster-public-port
is the public exposing port where the other clusters can connect to.
-cluster-public-host
is really important. You should expose the IP of your machines so that other clusters can connect to it.
-instance
is how many instances you want to run. Can be your core numbers, but better play with it. Especially each instance has a single eventloop.
Create jar:
./mvnw clean package
Or skip tests:
./mvnw clean package -Dmaven.test.skip=true
Docker build:
docker build -t vertx-async-gateway .
Docker run two instances exposed with different ports:
docker run -p 8888:8888 -e cluster-public-host=<YOUR-MACHINE-IP> -d vertx-async-gateway
docker run -p 8889:8888 -e cluster-public-host=<YOUR-MACHINE-IP> -d vertx-async-gateway
To test properly use something like nginx to load balance among 8888 and 8889