All Projects → rkudryashov → Microservices Example

rkudryashov / Microservices Example

Licence: apache-2.0
Example of a microservices architecture on the modern stack of Java technologies

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Microservices Example

Jbone
jbone基于Spring Cloud框架开发,旨在为中小企业提供稳定的微服务解决方案,为开发人员提供基础开发骨架,jbone包含微服务中所有常用组件,例如注册中心、服务管理、服务监控、JVM监控、内存分析、调用链跟踪、API网关等等。业务功能包括系统权限的统一管理、单点登录、CMS、电商平台、工作流平台、支付平台等等。
Stars: ✭ 961 (+1356.06%)
Mutual labels:  microservice, eureka, spring-boot, spring-cloud, feign, hystrix, thymeleaf
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 (+457.58%)
Mutual labels:  microservices, eureka, spring-boot, spring-cloud, spring-cloud-netflix, hystrix
Java Spring Cloud
Distributed tracing for Spring Boot, Cloud and other Spring projects
Stars: ✭ 326 (+393.94%)
Mutual labels:  microservices, spring-boot, spring-cloud, feign, hystrix
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 (-4.55%)
Mutual labels:  microservices, eureka, spring-boot, spring-cloud, feign
Mini Platform
Mini-Platform致力于更简洁易用的轻量级微服务治理平台。
Stars: ✭ 45 (-31.82%)
Mutual labels:  microservices, microservice, eureka, spring-boot, spring-cloud
Spring Boot Microservices Example
Bootiful Microservices with Spring Boot
Stars: ✭ 204 (+209.09%)
Mutual labels:  spring-boot, spring-cloud, feign, spring-cloud-netflix, hystrix
Advanced Java
😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
Stars: ✭ 59,142 (+89509.09%)
Mutual labels:  eureka, spring-cloud, feign, hystrix, microservices-architecture
Spring Cloud
SpringCloud微服务架构,提供快速上手脚手架,快速构建高可用注册中心,高可用配置中心,加入Hystrix断路器,gateway服务官网,权限认证、服务降级、限流,加入应用监控
Stars: ✭ 130 (+96.97%)
Mutual labels:  eureka, spring-boot, spring-cloud, feign, hystrix
Sample Spring Microservices New
Demo for Spring Boot 2 and Spring Cloud microservices with distributed configuration (Spring Cloud Config), service discovery (Eureka), API gateway (Spring Cloud Gateway, Zuul), Swagger2 API documentation, logs correlation using Spring Cloud Sleuth and many more
Stars: ✭ 559 (+746.97%)
Mutual labels:  microservices, eureka, spring-cloud, feign, spring-cloud-netflix
Fxshop
基于SpringBoot+SpringCloud微服务的商城项目(demo版 不可用于生产)
Stars: ✭ 82 (+24.24%)
Mutual labels:  eureka, spring-boot, spring-cloud, hystrix, thymeleaf
Springcloudlearning
《史上最简单的Spring Cloud教程源码》
Stars: ✭ 16,218 (+24472.73%)
Mutual labels:  eureka, spring-boot, spring-cloud, feign, hystrix
Spring Cloud Microservices Development
Spring Cloud Microservices Development.《Spring Cloud 微服务架构开发实战》
Stars: ✭ 106 (+60.61%)
Mutual labels:  gradle, spring-boot, spring-cloud, spring-cloud-netflix, thymeleaf
Spring Cloud Learning
☁️适合刚接触微服务架构的初学者了解和学习微服务,主要集成了注册中心、服务网关、配置中心、熔断机制、应用监控。
Stars: ✭ 37 (-43.94%)
Mutual labels:  eureka, spring-boot, spring-cloud, feign
Springcloud Learning
Spring Cloud基础教程,持续连载更新中
Stars: ✭ 6,839 (+10262.12%)
Mutual labels:  eureka, spring-boot, spring-cloud, hystrix
Springy Store Microservices
Springy Store is a conceptual simple μServices-based project using the latest cutting-edge technologies, to demonstrate how the Store services are created to be a cloud-native and 12-factor app agnostic. Those μServices are developed based on Spring Boot & Cloud framework that implements cloud-native intuitive, design patterns, and best practices.
Stars: ✭ 318 (+381.82%)
Mutual labels:  microservices, spring-boot, spring-cloud, spring-cloud-netflix
Spring Petclinic Microservices
Distributed version of Spring Petclinic built with Spring Cloud
Stars: ✭ 814 (+1133.33%)
Mutual labels:  microservices, eureka, spring-cloud, hystrix
Event Stream Processing Microservices
Using Spring Cloud Stream and Spring State Machine to create event-driven microservices
Stars: ✭ 255 (+286.36%)
Mutual labels:  microservices, microservice, spring-boot, spring-cloud
Matecloud
🔥MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Cloud Alibaba、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等服务套件,为您的开发保驾护航
Stars: ✭ 412 (+524.24%)
Mutual labels:  microservice, spring-boot, spring-cloud, microservices-architecture
Apollo
Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
Stars: ✭ 26,052 (+39372.73%)
Mutual labels:  microservices, spring-boot, spring-cloud, spring-cloud-netflix
Spring Cloud Security
Security concerns for distributed applications implemented in Spring
Stars: ✭ 488 (+639.39%)
Mutual labels:  microservices, spring-boot, spring-cloud, feign

Build Status codecov

Microservices example

There are articles with more detailed explanation about this project: in English and in Russian.

This is an example of microservice architecture pattern implemented with following stack of Java-technologies:

  • JDK 13
  • Kotlin
  • Spring Cloud
    • Spring Cloud Gateway
    • Spring Cloud Config
    • Spring Cloud Sleuth
    • Spring Cloud OpenFeign
    • Spring Cloud Netflix
      • Eureka
      • Hystrix
      • Ribbon
  • Gradle with Kotlin DSL
  • JUnit
  • Other: Thymeleaf, Bootstrap, Webjars

Diagram of components

-

Config server

Stores configs of all microservices.

Service discovery server

Performs Service registry function. Spring Cloud Netflix Eureka is used which is Client-side service discovery. Each application sends heartbeats to Eureka server after registration.

Items service

This is an example of back-end with REST API implemented with Spring WebFlux. HTTP requests are processed with handler. Also microservice demonstrates example of sending additional metadata.

Items UI

This is an example of front-end which uses Thymeleaf for HTML-pages rendering and Bootstrap CSS framework (plugs in with help of Webjars). Application contains a few examples of interacting with back-end (Items service) by using different API:

You can test all of these approaches by request to http://localhost:8081/example.

You can test Hystrix fallback working by request to http://localhost:8081/hystrix-fallback.

UI gateway

Performs authentication and routing to UI microservices (only Items UI in this project). Routing implemented with Spring Cloud Gateway which settings as well as other settings are stored in YAML-config. Also application contains route to Eureka accessed by https://localhost/eureka. All routes you can see by request to https://localhost/actuator/gateway/routes. Access to login page implements using WebFlux. You can perform authentication with one of hardcoded users. Application passes user's login and roles by adding it to HTTP request headers. You can request to https://localhost/items-ui/greeting to see passed credentials. Sure you can access all other endpoints provided by Items UI. As well as Items UI this application uses Thymeleaf and Bootstrap for UI purposes.

SSL

ui-gateway works on port 443 and is available with HTTPS protocol. SSL certificate was created by using following command:

keytool -genkey -alias test_key -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

and with qwerty password.

Distributed tracing

-

This schema is simple, see here for details.

Building

Depending of your OS: gradlew clean build or ./gradlew clean build.

Used Gradle 5 requires at least JDK 8.

Running

Run all microservices in the same order as they are listed. If you are using Intellij IDEA with enabled Run Dashboard you should get something like:

-

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].