Getting Started With Microservices: An Example Application
Learn how to achieve scalability, high availability, and resilience by creating a microservice architecture in an application with the Vaadin framework.
In my previous article about Microservices and User Interfaces, I discussed strategies for developing Vaadin-based applications in microservices architectures. In this article, I’ll show you an example application developed with a microservices architecture using Spring Boot and Vaadin Framework. The following is a screenshot of the application:
The left side is a completely separate and independent Vaadin application. The same is true for the right side of the page.
Downloading and Running the Application
Download the code from GitHub or from the command line with Git:
git clone https://github.com/alejandro-du/vaadin-microservices-demo.git
Compile the project using Maven:
cd vaadin-microservices-demo mvn package
Start the discovery server:
cd vaadin-microservices/discovery-server java -jar target/discovery-server-0.0.1-SNAPSHOT.jar
Start the configuration server:
cd vaadin-microservices/config-server java -jar target/config-server-0.0.1-SNAPSHOT.jar
Run the microservices serving the actual functionality of the application:
cd vaadin-microservices/biz-application java -Dserver.port=9601 -jar target/biz-application-0.0.1-SNAPSHOT.jar cd vaadin-microservices/admin-application java -Dserver.port=9401 -jar target/admin-application-0.0.1-SNAPSHOT.jar cd vaadin-microservices/news-application java -Dserver.port=9201 -jar target/news-application-0.0.1-SNAPSHOT.jar cd vaadin-microservices/website-application java -Dserver.port=9001 -jar target/website-application-0.0.1-SNAPSHOT.jar
And finally, start the proxy server:
cd vaadin-microservices-demo/proxy-server java -jar target/proxy-server-0.0.1-SNAPSHOT.jar
Now you can request the proxy server at http://localhost:8080 and start using the application. Keep in mind that for simplicity, this demo doesn’t use any event bus communication and push features to update the tweets shown on the left. You have to reload the page to see the new data after using the CRUD web interface on the left of the page.
Scalability, High Availability, and Resilience
In order to scale parts of the system, you can simply start additional instances. For example, you can run more instances of the
admin-application (the one shown on the left side in the browser):
cd vaadin-microservices-demo/admin-application java -Dserver.port=9401 -jar target/admin-application-0.0.1-SNAPSHOT.jar
Try stopping all instances of the
biz-application and see what happens in the browser. The web applications should show error messages, when appropriate, without blocking the use of other parts of them. The
news-application (the one on the right side in the browser) shows a predefined set of companies when the
biz-application is not up.
You can find a more detailed tutorial at vaadin.com.