力荐几个不错的Spring Cloud微服务项目

程序员实战基地

共 2402字,需浏览 5分钟

 ·

2021-07-12 16:12


在如今微服务、分布式大行其道的时代,懂点相关的技术、知识无疑可以给自己加分,而要是能有一些现成的、与之相关的实战性项目跟着撸,对于自己而言那将如虎添翼!本文将推荐几个相当不错的跟Spring Cloud相关的微服务项目,帮助大家增长这方面相关的技术!

 

一、Cloud-Platform


地址:https://gitee.com/geek_qi/cloud-platform


首当其冲的当属目前相当火热的开源项目:Cloud-Platform,在Gitee上目前已达将近16K Star,将近8K 的Forked量。


它是国内首个基于SpringCloud微服务化的开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。


代码简洁,架构清晰,适合学习和直接项目中使用,核心技术采用Spring Boot 2.4.1、Spring Cloud (2020.0.0)以及Spring Cloud Alibaba 2.2.4 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-admin组件,Elastic Search自行集成;


直接上图吧!!!



其架构摘要简单介绍如下:


(1)中台化前端

集成d2admin中台化前端,优化前端架构和功能布局,支撑中台服务化的应用开发。


(2)JWT鉴权

通过JWT的方式来进行用户认证和信息传递,保证服务之间用户无状态的传递。


(3)监控

利用Spring Boot Admin 来监控各个独立Service的运行状态;利用Hystrix Dashboard来实时查看接口的运行状态和调用频率等。


(4)负载均衡

将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,SpringCloud系列的zuul和ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件,方面进行限流。


(5)服务注册与调用

基于Nacos来实现的服务注册与调用,在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。


(6)熔断与流控

集成阿里Sentinel进行接口流量控制,通过熔断和降级处理避免服务之间的调用“雪崩”。


二、SpringBlade微服务开发平台


地址:https://gitee.com/smallc/SpringBlade  


稳定生产了三年,经历了从 Camden ->Hoxton -> 2020 的技术架构,也经历了从fat jar -> docker ->k8s + jenkins的部署架构;项目分包明确,规范微服务的开发模式,使包与包之间的分工清晰。


(1)采用前后端分离的模式:

前端开源两个框架:Sword (基于 React、Ant Design)、Saber(基于 Vue、Element-UI)


(2)后端采用SpringCloud全家桶,并同时对其基础组件做了高度的封装,单独开源出一个框架:BladeTool。


BladeTool已推送至Maven中央库,直接引入即可,减少了工程的臃肿,也可更注重于业务开发。


(3)集成Sentinel从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性。


(4)注册中心、配置中心选型Nacos,为工程瘦身的同时加强各模块之间的联动。


(5)使用Traefik进行反向代理,监听后台变化自动化应用新的配置文件。


(6)极简封装了多租户底层,用更少的代码换来拓展性更强的SaaS多租户系统。


(7)借鉴OAuth2,实现了多终端认证系统,可控制子系统的token权限互相隔离。


(8)借鉴Security,封装了Secure模块,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案。


 


三、Spring-Cloud-Shop


地址:https://github.com/SiGuiyang/spring-cloud-shop  


Spring Cloud 版分布式电商项目,全力打造顶级多模块,高可用,高扩展电商项目

设计此项目是为了进一步学习Spring Cloud 技术栈。从项目实战深入Spring Cloud 各个微服务的解决方案,因此采用最常见的电商业务作为练手项目。


目前项目使用分库设计方案,不同的模块依赖不同的数据库实例

(1)营销中心:pager_activity

(2)授权中心:pager-auth

(3)商品中心:pager_goods

(4)订单中心:pager_order

(5)数据中心:pager_shop

(6)风控中心:pager-risk

(7)后台登陆采用oauth2.0授权,支持密码登陆,授权码登陆,短信验证码登陆

注册中心与配置中心已使用alibabanacos。

 

 

总结:


好了,本文就介绍到这里吧,希望诸位可以认真看一看、瞧一瞧debug精心且煞费一番苦心整理的开源项目吧,希望对诸位有所帮助!学习期间有任何问题都可以加我微信与我沟通交流!!!


如果本文对你有帮助,请关注公众号,并动动手指收藏、点赞、以及转发哦!!!



我是debug,一个相信技术改变生活、技术成就梦想的攻城狮。

学习Java,请点击“阅读原文
浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报