All Projects → alejandro-du → Vaadin Microservices Demo

alejandro-du / Vaadin Microservices Demo

A microservices example developed with Spring Cloud and Vaadin

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Vaadin Microservices Demo

Spring Boot Microservice Eureka Zuul Docker
Spring-Boot rest microservices using Eureka, Zuul, Docker. Monitoring with logstash, logback, elasticsearch, kibana
Stars: ✭ 45 (-58.33%)
Mutual labels:  microservice, eureka, spring-boot, zuul
Mini Platform
Mini-Platform致力于更简洁易用的轻量级微服务治理平台。
Stars: ✭ 45 (-58.33%)
Mutual labels:  microservice, eureka, spring-boot, zuul
Springcloud Shop
基于Spring Boot、Spring Cloud的微服务商城demo
Stars: ✭ 198 (+83.33%)
Mutual labels:  eureka, spring-boot, zuul
Springcloudlearning
《史上最简单的Spring Cloud教程源码》
Stars: ✭ 16,218 (+14916.67%)
Mutual labels:  eureka, spring-boot, zuul
Spring Cloud Examples
Spring Cloud 学习案例,服务发现、服务治理、链路追踪、服务监控等
Stars: ✭ 5,829 (+5297.22%)
Mutual labels:  eureka, spring-boot, zuul
Microservices Example
Example of a microservices architecture on the modern stack of Java technologies
Stars: ✭ 66 (-38.89%)
Mutual labels:  microservice, eureka, spring-boot
Spring Cloud
SpringCloud微服务架构,提供快速上手脚手架,快速构建高可用注册中心,高可用配置中心,加入Hystrix断路器,gateway服务官网,权限认证、服务降级、限流,加入应用监控
Stars: ✭ 130 (+20.37%)
Mutual labels:  eureka, spring-boot, zuul
Sample Spring Microservices
Many samples in different branches that shows how to create microservices with Spring Boot, Spring Cloud, Zipkin, Zuul, Eureka, Hystrix, Kubernetes, Elastic Stack and many more tools
Stars: ✭ 368 (+240.74%)
Mutual labels:  eureka, spring-boot, zuul
Micro Company
Rest-full, Hipermedia-based distributed application. Spring boot & cloud. Angular. CQRS. Eventsourcing. Axonframework. Microservices. Docker. CloudFoundry
Stars: ✭ 307 (+184.26%)
Mutual labels:  microservice, spring-boot, demo
Cxf Spring Cloud Netflix Docker
Example project combining Spring Boot apps with Spring Cloud Netflix (Eureka, Zuul, Feign) & cxf-spring-boot-starter
Stars: ✭ 29 (-73.15%)
Mutual labels:  eureka, spring-boot, zuul
Springcloud Learning
Spring Cloud基础教程,持续连载更新中
Stars: ✭ 6,839 (+6232.41%)
Mutual labels:  eureka, spring-boot, zuul
Jbone
jbone基于Spring Cloud框架开发,旨在为中小企业提供稳定的微服务解决方案,为开发人员提供基础开发骨架,jbone包含微服务中所有常用组件,例如注册中心、服务管理、服务监控、JVM监控、内存分析、调用链跟踪、API网关等等。业务功能包括系统权限的统一管理、单点登录、CMS、电商平台、工作流平台、支付平台等等。
Stars: ✭ 961 (+789.81%)
Mutual labels:  microservice, eureka, spring-boot
Bookstoreapp Distributed Application
Ecommerce project is being developed using Spring Boot Microservices and Spring Cloud (Backend) and React (Frontend). Splitting the Ecommerce functionality into various individual microservices so that they can be distributed, scale really well and make use of resources efficiently.
Stars: ✭ 63 (-41.67%)
Mutual labels:  eureka, spring-boot, zuul
Simplemall
基于SpringCloud的微服务架构实战案例项目,以一个简单的购物流程为示例,融合spring cloud 相关组件,如spring-cloud-netflix、swagger等
Stars: ✭ 687 (+536.11%)
Mutual labels:  eureka, spring-boot, zuul
Spring Cloud Learning
☁️适合刚接触微服务架构的初学者了解和学习微服务,主要集成了注册中心、服务网关、配置中心、熔断机制、应用监控。
Stars: ✭ 37 (-65.74%)
Mutual labels:  eureka, spring-boot, zuul
Spring Boot Webflux Swagger Starter
An example project to illustrate how to document Spring Boot Webflux with Swagger2
Stars: ✭ 62 (-42.59%)
Mutual labels:  spring-boot, demo
Web Development Interview With Java
Java 开发相关技术栈(大中厂)高频面试问题收录。
Stars: ✭ 69 (-36.11%)
Mutual labels:  microservice, spring-boot
Multi Tenant App Demo
Demonstrates the discriminator field (shared schema) based multi-tenant application using Spring Boot & Hibernate 5.
Stars: ✭ 57 (-47.22%)
Mutual labels:  spring-boot, demo
Kotlin Spring Boot Jpa Rest Api Demo
Build a Restful API with Kotlin, Spring Boot, Mysql, Jpa and Hibernate
Stars: ✭ 67 (-37.96%)
Mutual labels:  microservice, spring-boot
Sample Boot Micro
Spring Cloud + Gradle Multi Project + Java8
Stars: ✭ 72 (-33.33%)
Mutual labels:  microservice, spring-boot

Microservices with Vaadin demo

A microservices demo implemented with Spring Cloud Netflix and Vaadin.

If you are using Vaadin 8, checkout the vaadin-8 branch.

Building the demo

Run the following from the command line:

git clone https://github.com/alejandro-du/vaadin-microservices-demo.git
cd vaadin-microservices-demo
mvn package

Running the demo

Use multiple (seven) terminals to perform the following steps:

1) Start the discovery-server application (Eureka app):

cd vaadin-microservices-demo/discovery-server
java -jar target/discovery-server-0.0.1-SNAPSHOT.jar

2) Start the config-server application (Spring Cloud Config app):

cd vaadin-microservices-demo/config-server
java -jar target/config-server-0.0.1-SNAPSHOT.jar

3) Start an instance of the biz-application microservice (REST app):

cd vaadin-microservices-demo/biz-application
java -jar target/biz-application-0.0.1-SNAPSHOT.jar

4) Start an instance of the admin-application microservice (Vaadin app):

cd vaadin-microservices-demo/admin-application
java -jar target/admin-application-0.0.1-SNAPSHOT.jar

5) Start an instance of the news-application microservice (Vaadin app):

cd vaadin-microservices-demo/news-application
java -jar target/news-application-0.0.1-SNAPSHOT.jar

6) Start an instance of the website-application microservice (Vaadin app):

cd vaadin-microservices-demo/website-application
java -jar target/website-application-0.0.1-SNAPSHOT.jar

7) Start the proxy-server application (Zuul app):

cd vaadin-microservices-demo/proxy-server
java -jar target/proxy-server-0.0.1-SNAPSHOT.jar

Using the demo

1) Point your browser to http://localhost:8080.

You'll see the website-application embedding the admin-application and the news-application microservices.

This is the "edge service" implemented with Netflix Zuul. It acts as a reverse proxy, redirecting requests to the website-application, news-application, and admin-application instances using a load balancer provided by Netflix Ribbon with a round robin strategy.

If you get a "Server not available" message, please wait until all the services are registered with the discovery-server (implemented with Netflix Eureka).

2) Add, update, or delete data.

Latest tweets from the companies you enter on the left (the admin-application) will be rendered on the right (the news-application).

The admin-application, and news-application instances (implemented with Vaadin) delegate CRUD operations to the biz-application (implemented with Spring Data Rest) using a load balancer (provided by Netflix Ribbon) with a round robin strategy.

3) Add microservice instances.

You can horizontally scale the system by starting more instances of the biz-application, admin-application, news-application, and website-application microservices. Remember to specify an available port (using -Dserver.port=NNNN) when you start a new instance.

4) Test high-availability.

Make sure you are running two instances of the admin-application. Click the + (Add) button and enter Vaadin as the name, and vaadin as the Twitter Username. Don't click the Add button yet.

Stop one of the instances of the admin-application and click the Add button. The web application should remain functional and save the data you entered without losing the state of the UI thanks to the externalized HTTP Session (implemented with Spring Session and Hazelcast).

5) Test system resilience.

Stop all the instances of the biz-application microservice and refresh the browser to see the fallback mechanisms (implemented with Netflix Hystrix) in the admin-application and news-application microservices.

Developing

You don't need to have all the infrastructure services running (discovery-server, config-server, and proxy-server) in order to develop individual microservices (biz-application, admin-application, news-application, and website-application). Activate the development Spring profile to use a local configuration (application-development.properties) that excludes external orchestration services.

For example, during development you can run the biz-application microservice using:

cd vaadin-microservices-demo/biz-application
java -Dspring.profiles.active=development -jar target/biz-application-0.0.1-SNAPSHOT.jar

With the admin-application, and news-application you need the REST web-service provided by the biz-application. You can either, run the biz-application in development mode or create a mock REST web service. You can configure the end point with the biz-application.url property in the application-development.properties.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].