微服务项⽬实例--Cloud-Platform(⽼⼲爹)
资源信息都来⾃⽹络,本⼈只是记录作为个⼈笔记
后端:
Cloud-Platform
Cloud-Platform是国内⾸个基于Spring Cloud微服务化开发平台,具有统⼀授权、认证后台管理系统,其中包含具备⽤户管理、资源权限管理、⽹关API 管理等多个模块,⽀持多业务系统并⾏开发,可以作为后端服务的开发脚⼿架。代码简洁,架构清晰,适合学习和直接项⽬中使⽤。 核⼼技术采⽤Spring Boot 2.1.2以及Spring Cloud (Greenwich.RELEASE) 相关核⼼组件,采⽤Nacos注册和配置中⼼,集成流量卫兵Sentinel,前端采⽤vue-element-admin组件,Elastic Search⾃⾏集成。
系统架构
架构详解
监控
利⽤Spring Boot Admin 来监控各个独⽴Service的运⾏状态;利⽤Hystrix Dashboard来实时查看接⼝
的运⾏状态和调⽤频率等。
springcloud难学吗负载均衡
将服务保留的rest进⾏代理和⽹关控制,除了平常经常使⽤的node.js、nginx外,Spring Cloud系列的zuul和rebbion,可以帮我们进⾏正常的⽹关管控和负载均衡。
服务注册与调⽤
基于Nacos来实现的服务注册与调⽤,在Spring Cloud中使⽤Feign, 我们可以做到使⽤HTTP请求远程服务时能与调⽤本地⽅法⼀样的编码体验,开发者完全感知不到这是远程⽅法,更感知不到这是个HTTP请求。
熔断机制
因为采取了服务的分布,为了避免服务之间的调⽤“雪蹦”,我采⽤了Hystrix的作为熔断器,避免了服务之间的“雪蹦”。
后端⼯程启动
项⽬结构
ace-security
ace-modules--------------公共服务模块(基础系统、搜索、OSS)
ace-auth-----------------服务鉴权中⼼
ace-gate-----------------⽹关负载中⼼
ace-common---------------通⽤脚⼿架
ace-control--------------运维中⼼(监控、链路)
ace-sidebar--------------调⽤第三⽅语⾔服务
环境须知!
mysql⼀个,redis⼀个,sentiel⼀个,nacos注册中⼼⼀个
jdk1.8
IDE插件⼀个,lombok插件,具体百度即可
搭建
须知
因为Cloud-Platform是⼀个前后端分离的项⽬,所以后端的服务必须先启动,在后端服务启动完成后,再启动前端的⼯程。代码地址:
前端:
AG-Admin-v2-UI
准备⼯作
node.js环境(npm包管理器)
vue-cli 脚⼿架构建⼯具
cnpm npm的淘宝镜像
开发运⾏
# 安装依赖
npm install
//or # 建议不要⽤cnpm 安装有各种诡异的bug 可以通过如下操作解决npm速度慢的问题
npm install --registry=registry.
# 本地开发开启服务
npm run dev
发布
# 发布测试环境带webpack ananalyzer npm run build:sit-preview
# 构建⽣成环境
npm run build:prod
部署nginx配置参考
location / {
# 指向我们打包后上传的前端⽂件
root /opt/nginx/dist;
index index.html;
}
location /jwt/ {
# 转发请求到后端服务⽹关
proxy_pass 127.0.0.1:8765/jwt/; }
location /api/ {
proxy_pass 127.0.0.1:8765/api/; }
代码地址:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论