All Projects → AlaaMezian → spring-boot-microservices

AlaaMezian / spring-boot-microservices

Licence: other
this is a solution based on micro-service architecture to easily add / remove services providers without effecting other providers and without affecting the main services consumers

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to spring-boot-microservices

springboard-cloud
基于Spring cloud、dubbo、oauth2的微服务应用
Stars: ✭ 16 (+6.67%)
Mutual labels:  springcloud
fw-boot-admin-eureka
springboot admin 监控springCloud服务eureka版
Stars: ✭ 21 (+40%)
Mutual labels:  springcloud
taotao-cloud-project
微服务开发脚手架,包括大数据模块、微服务模块、前端模块。基于Spring Cloud Alibaba的微服务架构。提供技术框架的基础能力的封装,减少开发工作,只关注业务,包含了工作以来的工作总结和技术沉淀
Stars: ✭ 76 (+406.67%)
Mutual labels:  springcloud
Programmer-Learning-materials
程序员 学习资料,以及一些书籍电子书,如果对您有所帮助,还希望大家多多star,更多资料请关注《Java有货》微信公众号获取
Stars: ✭ 140 (+833.33%)
Mutual labels:  springcloud
note
📝个人知识体系 算法与数据结构 / 操作系统 / 数据库 / 计算机系统 / 网络 / 中间件 / Java / 架构 / 前端 / 运维 / 网络安全 / 软技能
Stars: ✭ 40 (+166.67%)
Mutual labels:  springcloud
chronus
Chronus是360数科技术团队基于阿里开源项目TBSchedule重写的分布式调度。
Stars: ✭ 174 (+1060%)
Mutual labels:  springcloud
JavaHub
Java程序员学习之路,持续更新原创内容,欢迎Star
Stars: ✭ 27 (+80%)
Mutual labels:  springcloud
QuickStart-admin-Cloud
基于spring boot 2.0.8 目前集成了spring security oauth2 (server and client)、springboot-admin、openfeign、hystrix,zuul(后续会替换成gateway),config.....等组件
Stars: ✭ 25 (+66.67%)
Mutual labels:  springcloud
robert
基于SpringCloud的企业级微服务多租户系统、多语言的脚手架, 代码组件化、高内聚低耦合,代码简介,注释丰富容易上手,该项目包括用于开发分布式应用程序服务的必要组件,支持多应用程序访问,并使开发人员可以轻松地使用Spring Cloud编程模型来开发分布式应用程序服务。
Stars: ✭ 45 (+200%)
Mutual labels:  springcloud
JavaYouth
主要是Java技术栈的文章,涉及到了源码、原理,面试等知识。如AQS,JVM,rpc,计网,os等等,后续可能会写mysql,redis,zk这些
Stars: ✭ 616 (+4006.67%)
Mutual labels:  springcloud
thinglinks
开源ThingLinks物联网一体化平台,高性能、高吞吐量、高扩展性的物联网平台!单机可以支持百万链接,同时支持自定义扩展功能,功能非常强大,采用netty作为通信层组件,支持插件化开发集成!
Stars: ✭ 338 (+2153.33%)
Mutual labels:  springcloud
micro-service-practice
OpenStack+Docker+RestAPI+OAuth/HMAC+RabbitMQ/ZMQ+OpenResty/HAProxy/Nginx/APIGateway+Bootstrap/AngularJS+Ansible+K8S/Mesos/Marathon构建/探索微服务最佳实践。
Stars: ✭ 25 (+66.67%)
Mutual labels:  springcloud
go-register-server
The microservice registration is implemented by monitoring the state changes of the k8s pod, and pull the interface in the spring cloud eureka client service list.
Stars: ✭ 14 (-6.67%)
Mutual labels:  springcloud
spring-cloud
🔥 Develop distributed application services based on SpringCloud architecture model and components
Stars: ✭ 36 (+140%)
Mutual labels:  springcloud
microservice-app
Youtube Microservice Video Serie Application Repository
Stars: ✭ 91 (+506.67%)
Mutual labels:  springcloud
doit
spring cloud , CAS , JHipster hybrid sample app
Stars: ✭ 14 (-6.67%)
Mutual labels:  springcloud
service-api
Report portal. Main API Service
Stars: ✭ 35 (+133.33%)
Mutual labels:  springcloud
vm-engine
vm-engine为“微视频”网站的后端,java语言开发。涉及技术包括,springboot,springcloud,mybaties,docker,websocket,rabbitmq,redis等。
Stars: ✭ 57 (+280%)
Mutual labels:  springcloud
SpringCloudLearn
SpringCloud 1.5.x 学习项目笔记
Stars: ✭ 52 (+246.67%)
Mutual labels:  springcloud
guli-mall
尚硅谷-谷粒商城代码及文档https://www.yuque.com/zhangshuaiyin/guli-mall
Stars: ✭ 233 (+1453.33%)
Mutual labels:  springcloud

Spring Boot MicroService Bridge Solution

This is a solution based on micro-service architecture to easily add / remove services providers without effecting other providers and without effecting the main services consumer.

In this solution i used spring boot and spring cloud to implement microservice archtiture here are some of the modules used in the solution:

  • Service Discovery (Eureka Naming Server)
  • Feign Rest Client
  • Hystrix for fault tolerance
  • Rest Controllers
  • Swagger for api documentation

Archticture

In this paragraph i will explain the archticture ,our solution contains five component , four core microservices, bestHotel, crazyHotel ,available hotel which act as a consumer for other services and aggregateHotels, the aggregate hotel micro service act as bridge or as some other people call front door to other underlying micro service ,finally eruka naming server which will register and ease the communication between services.

The purpose of the aggregate service is to be the main portal to microservices leaving each microservice sperate independent from other services,so adding or removing microservice will be maintained only in the aggregate service code, the aggregate service is the key for this structure to because it will calls each relevant microservice collects the data, apply business logic to it, and further publish it is as a REST Endpoint.

Implementating hystrix applied defensive programming strategy is essential, if besthotel service provider went down , our main service consumer won't go down and will not recive an error but instead hystrix will call a FallBack Command which will handle besthotel microservice fauiler.

alt text

To run and test the project please run the following respectively

  • Eruka Naming Server (must be first)
  • Best Hotel Serivce
  • Crazy Hotel Service
  • Aggregate Hotel Serivce
  • Available Hotel Service (Consumer Service)

After luanching the projects ,testing the main consumer service available hotel can be done through swagger at: http://localhost:8082/swagger-ui.html#/

Please note that Shutting down any of the provider service won't effect the overwhole process ,as if crazy hotel service provider shut down ,the following will happen:

  • hystrix fall back will be triggered
  • aggregate service will collect data from alive providers in our case besthotels service
  • our consumer will still gets the data of best hotels after all.

Future Improvements :

✔️ cover the solution with unit testing using JUnit added junit for both best hotel and crazy hotel micro service

  • add Load Balancing Ribbons to microservice .

Please feel free to happy programming ✌️

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