1. 程式人生 > >AG-Admin 一個spring cloud的好例子

AG-Admin 一個spring cloud的好例子

https://github.com/wxiaoqi/ace-admin

AG-Admin

AG-Admin是基於Spring Cloud實現的前後端分離的後臺管理資訊系統,具備使用者管理、部門管理、選單管理等多個模組,支援多業務系統並行開發,可以作為後臺管理系統的腳手架。程式碼簡潔,架構清晰,適合學習和直接專案中使用。核心技術採用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中介軟體,前端採用Layui元件。

QQ群號:169824183

賬號/密碼:admin/admin

Markdown

模組說明

img

架構詳解

監控

利用Spring Boot Admin 來監控各個獨立Service的執行狀態;利用Hystrix Dashboard來實時檢視介面的執行狀態和呼叫頻率等。

負載均衡

將服務保留的rest進行代理和閘道器控制,除了平常經常使用的node.js、nginx外,Spring Cloud系列的zuul和rebbion,可以幫我們進行正常的閘道器管控和負載均衡。

服務註冊與呼叫

基於Eureka來實現的服務註冊與呼叫,在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠端服務時能與呼叫本地方法一樣的編碼體驗,開發者完全感知不到這是遠端方法,更感知不到這是個HTTP請求。

熔斷機智

因為採取了服務的分佈,為了避免服務之間的呼叫“雪蹦”,我採用了Hystrix的作為熔斷器,避免了服務之間的“雪蹦”。

專案結構

├─ace-security
│  │  
│  ├─ace-admin----------------管理端服務層
│  │  
│  ├─ace-gate-----------------閘道器負載中心
│  │ 
│  ├─ace-ui-------------------前端UI層面
│  │    
│  ├─ace-center---------------服務註冊中心
│  │   
│  ├─ace-monitor--------------監控中心
│  │
│  ├─ace-config---------------配置中心
│  │
│  └─ace-api------------------公共服務介面包
│

功能簡介

  1. 使用者管理
  2. 角色管理
  3. 部門管理(待完善)
  4. 選單管理
  5. 字典管理
  6. 操作日誌
  7. 監控管理
  8. 訊息管理(待完善)
  9. 程式碼生成(待完善)

啟動指南

部署須知

  • mysql資料庫一個,redis資料庫一個
  • jdk1.8
  • IDE外掛一個,lombok外掛,具體百度即可

執行步驟

  • 執行資料庫指令碼:依次執行資料庫:ace-admin/db/init.sql
  • 修改配置資料庫配置:ace-admin/src/main/resources/application.yml、ace-gate/src/main/resources/application.yml
  • 依次執行main類:CenterBootstrap(ace-center)、ConfigServerBootstrap(ace-config)、GateBootstrap(ace-gate)、AdminBootstrap(ace-admin)、UIBootstrap(ace-ui)

執行部落格

  • 執行資料指令碼:ace-blog-admin/db/init.sql
  • 除了上述需要執行的main類外,依次執行BlogUIBootstrap、BlogAdminBootstrap

開發指南

2017年7月29日 Config-Server引入

img

  • ace-gate中關於閘道器配置抽離至config git伺服器
  • 修改spring cloud config 服務地址:ace-config/src/main/resources/application.yml中git地址
  • 相對於攜程的apollo的配置中心,spring cloud config不是很好用

2017年7月19日 後端內容管理和前端部落格demo

imgimg

  • 完成使用者瀏覽前端和後端管理的demo

2017年7月7日 使用者無狀態登陸

  • 完成使用者基於token方式登陸
  • 增加使用者jwt認證

2017年6月25日 完成資源許可權管控

imgimg

  • 整合spring session
  • 完成服務無狀態許可權攔截
  • 完成前端和後端許可權攔截
  • 頁面按鈕許可權顯示和隱藏(待完成)

2017年6月24日 完善監控模組

imgimgimg

  • druid監控整合
  • spring boot監控整合
  • hystrix監控整合

2017年6月20日 完成角色和部門模組

img

  • 完成動態使用者組設計
  • 完成動態角色、部門組功能
  • 完成角色與使用者的關聯
  • 完成角色與選單的關聯

2017年6月17日 完成選單管理模組

img

  • 引入boostrap table
  • 抽象基礎Controller類
  • 完成選單的增刪改查和樹狀
  • 多系統選單切換

2017年6月13日 完成登入統一攔截

img

  • spring security進行統一登入攔截

2017年6月10日 使用者管理增刪改查

Markdown

  • 完成後端的UI的選型
  • 完成首頁改進
  • 完成使用者模組的增刪該查
  • 完成前後端分離的模組聯通
  • 完成監控模組

版本日誌

2017年6月6日 初步架構搭建

  • 完成spring cloud相關核心元件整合和搭建
  • 完成Hello World服務的呼叫和負載
  • 完成閘道器的初步代理
  • 完成監控中心的搭建