Cloud-Platform
Cloud-Platform是国内首个基于Spring Cloud
微服务
化开发平台
,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API
管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。
核心技术采用Spring Boot 2.1.2
以及Spring Cloud (Greenwich.RELEASE)
相关核心组件,采用Nacos
注册和配置中心,集成流量卫兵Sentinel
,前端采用vue-element-admin
组件,Elastic Search
自行集成。
模块说明
架构摘要
服务鉴权
通过JWT
的方式来加强服务之间调度的权限验证,保证内部服务的安全性。
监控
利用Spring Boot Admin 来监控各个独立Service的运行状态;利用Hystrix Dashboard来实时查看接口的运行状态和调用频率等。
负载均衡
将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件
,方面进行限流。
服务注册与调用
基于Nacos来实现的服务注册与调用,在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。
熔断机制
因为采取了服务的分布,为了避免服务之间的调用“雪崩”,采用了Hystrix
的作为熔断器,避免了服务之间的“雪崩”。
项目结构
ace-security
ace-modules--------------公共服务模块(基础系统和JWT鉴权、搜索、OSS)
ace-dev-base---------------通用脚手架(基础jwtsdk、开发常用工具类)
ace-gate-----------------网关负载中心
ace-control--------------运维中心(监控、链路)
ace-sidebar--------------调用第三方语言服务
环境须知!
- mysql一个,redis一个,sentiel一个,nacos注册中心一个
- jdk1.8
- IDE插件一个,lombok插件,具体百度即可
- 搭建
须知 因为Cloud-Platform是一个前后端分离的项目,所以后端的服务必须先启动,在后端服务启动完成后,再启动前端的工程。
最多人问:代码有漏 下载完后端代码后,记得先安装lombok插件,否则你的IDE会报代码缺失。
运行步骤
- 先启动redis、redis、mysql以及nacos注册中心
- 运行数据库脚本:依次运行数据库:ace-admin/db/init.sql、ace-auth-server/db/init.sql
- 依次配置修改并导入nacos注册中心:ace-auth-server/src/main/resources/application.yml、ace-admin/src/main/resources/application.yml、ace-gate/src/main/resources/application.yml
- 按顺序运行main类:AuthBootstrap(ace-auth-server)、AdminBootstrap(ace-admin)、GatewayServerBootstrap(ace-gate)
功能截图
基本功能
功能截图
License
Apache License Version 2.0