Cloud-Platform 学习——Part01 项目介绍与运行

一.项目介绍

地址

后端:https://gitee.com/geek_qi/cloud-platform
前端:https://gitee.com/geek_qi/Cloud-Platform-UI-V2

介绍

Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。 核心技术采用Spring Boot 2.1.2以及Spring Cloud (Greenwich.RELEASE) 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-admin组件,Elastic Search自行集成。

系统结构

Cloud-Platform 学习——Part01 项目介绍与运行_第1张图片

架构详解

  1. 中台化前端
    集成 d2admin 中台化前端,优化前端架构和功能布局,支撑中台服务化的应用开发。
  2. JWT 鉴权
    通过 JWT 的方式来进行用户认证和信息传递,保证服务之间用户无状态的传递。
  3. 监控
    利用 Spring Boot Admin 来监控各个独立 Service 的运行状态;利用 Hystrix Dashboard 来实时查看接口的运行状态和调用频率等。
  4. 负载均衡
    将服务保留的 rest 进行代理和网关控制,除了平常经常使用的 node.js、nginx 外,Spring Cloud 系列的 zuul 和 ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于 JWT 的 Zuul限流插件,方面进行限流。
  5. 服务注册与调用
    基于 Nacos 来实现的服务注册与调用,在 Spring Cloud 中使用 Feign, 我们可以做到使用 HTTP 请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求。
  6. 熔断与流控
    因为采取了服务的分布,为了避免服务之间的调用“雪蹦”,我采用了 Hystrix 的作为熔断器,避免了服务之间的“雪蹦”。
    集成阿里 Sentinel 进行接口流量控制,通过熔断和降级处理避免服务之间的调用“雪崩”。

项目结构

  • ace-security
  • ace-api--------------跨服务调用通用dto数据对象
  • ace-modules--------------公共服务模块(基础系统和JWT鉴权、搜索、OSS)
  • ace-dev-base---------------通用脚手架(基础jwtsdk、开发常用工具类)
  • ace-gate-----------------网关负载中心
  • ace-infrastructure--------------运维中心(监控、链路、naco注册中心、sentinel熔断流控)

二.运行环境

mysql一个,redis一个,sentiel一个,nacos注册中心一个

这里推荐使用 docker安装,docker 安装到 linux系统,有购买服务器的可以安装到服务器上,没有的建议本地安装虚拟机,然后虚拟机安装 linux系统,接着就可以通过 docker安装相关服务了,安装过程请自行百度。

三.启动过程遇到的问题

这里主要讲我遇到的问题。。。

  1. 项目后端一直启动报错,识别不到 bootstrap.yml文件
    解决方法:
    springboot工程2.4.0版本以上,需要设置环境参数 -Dspring.cloud.bootstrap.enabled=true
    Cloud-Platform 学习——Part01 项目介绍与运行_第2张图片
  2. 加载 nacos配置报错,出现空指针报错
    Cloud-Platform 学习——Part01 项目介绍与运行_第3张图片
    解决方法:
    我这里出现这个错误的原因是因为我的 redis设置了密码,而项目 redis默认没有密码,所以报错,所以在 application.yml中配置 redis密码即可(踩坑!踩坑!)
  3. 启动后端时执行 npm install总报错
    首先注意 npm版本与python版本兼容性,建议使用作者推荐的 node版本
    Cloud-Platform 学习——Part01 项目介绍与运行_第4张图片
    以上报错可能是 node没有识别到 python系统环境,建议手动配置
    执行 npm config get userconfig 查看 node配置文件位置,找到后打开,再里面加上如下语句
    在这里插入图片描述
    Cloud-Platform 学习——Part01 项目介绍与运行_第5张图片
    以上报错可能是因为没有配置 node-sass镜像地址,执行以下与语句解决
    npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
    Cloud-Platform 学习——Part01 项目介绍与运行_第6张图片
    以上报错应该是验证出现问题,解决方法如下:
    打开 package-lock.json 文件,把里面 but got前面的 sha1替换为后面的 sha即可

以上就是我在启动这两个项目是遇到的问题

npm install 安装成功后,执行 npm run dev 启动项目:
Cloud-Platform 学习——Part01 项目介绍与运行_第7张图片
访问 http://localhost:9572/ 后就会进入登录界面
Cloud-Platform 学习——Part01 项目介绍与运行_第8张图片
登录成功后会显示如下界面,此时说明成功连接后端服务器了
Cloud-Platform 学习——Part01 项目介绍与运行_第9张图片

你可能感兴趣的:(Cloud-Platform,平台源码学习,学习,spring,cloud,微服务,java)