AG-Admin 一個spring cloud的好例子
阿新 • • 發佈:2019-02-19
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
模組說明
架構詳解
監控
利用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------------------公共服務介面包 │
功能簡介
- 使用者管理
- 角色管理
- 部門管理(待完善)
- 選單管理
- 字典管理
- 操作日誌
- 監控管理
- 訊息管理(待完善)
- 程式碼生成(待完善)
啟動指南
部署須知
- 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引入
- ace-gate中關於閘道器配置抽離至config git伺服器
- 修改spring cloud config 服務地址:ace-config/src/main/resources/application.yml中git地址
- 相對於攜程的apollo的配置中心,spring cloud config不是很好用
2017年7月19日 後端內容管理和前端部落格demo
- 完成使用者瀏覽前端和後端管理的demo
2017年7月7日 使用者無狀態登陸
- 完成使用者基於token方式登陸
- 增加使用者jwt認證
2017年6月25日 完成資源許可權管控
- 整合spring session
- 完成服務無狀態許可權攔截
- 完成前端和後端許可權攔截
- 頁面按鈕許可權顯示和隱藏(待完成)
2017年6月24日 完善監控模組
- druid監控整合
- spring boot監控整合
- hystrix監控整合
2017年6月20日 完成角色和部門模組
- 完成動態使用者組設計
- 完成動態角色、部門組功能
- 完成角色與使用者的關聯
- 完成角色與選單的關聯
2017年6月17日 完成選單管理模組
- 引入boostrap table
- 抽象基礎Controller類
- 完成選單的增刪改查和樹狀
- 多系統選單切換
2017年6月13日 完成登入統一攔截
- spring security進行統一登入攔截
2017年6月10日 使用者管理增刪改查
- 完成後端的UI的選型
- 完成首頁改進
- 完成使用者模組的增刪該查
- 完成前後端分離的模組聯通
- 完成監控模組
版本日誌
2017年6月6日 初步架構搭建
- 完成spring cloud相關核心元件整合和搭建
- 完成Hello World服務的呼叫和負載
- 完成閘道器的初步代理
- 完成監控中心的搭建