微服务项目实例--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自行集成。

系统架构

 

微服务项目实例--Cloud-Platform(老干爹)_第1张图片


架构详解

监控

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

负载均衡

将服务保留的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是一个前后端分离的项目,所以后端的服务必须先启动,在后端服务启动完成后,再启动前端的工程。

代码地址:

https://gitee.com/geek_qi/cloud-platform.git

 

前端:

AG-Admin-v2-UI

准备工作

  • node.js环境(npm包管理器)
  • vue-cli 脚手架构建工具
  • cnpm npm的淘宝镜像

开发运行

   
    # 安装依赖
    npm install
    //or # 建议不要用cnpm  安装有各种诡异的bug 可以通过如下操作解决npm速度慢的问题
    npm install --registry=https://registry.npm.taobao.org

    # 本地开发 开启服务
    npm run dev

浏览器访问 http://localhost:9527

发布

    # 发布测试环境 带webpack ananalyzer
    npm run build:sit-preview

    # 构建生成环境
    npm run build:prod

部署nginx配置参考

  location / {
        # 指向我们打包后上传的前端文件
        root /opt/nginx/dist;
        index index.html;
    }
    location /jwt/ {
        # 转发请求到后端服务网关
        proxy_pass http://127.0.0.1:8765/jwt/;
    }
    location /api/ {
        proxy_pass http://127.0.0.1:8765/api/;
     }

代码地址:

https://gitee.com/geek_qi/cloud-platform-ui.git

 

你可能感兴趣的:(开源项目)