open-cloud基於springcloud、oauth2、nacos打造的微服務開放平臺

簡介

搭建基於OAuth2的開放平臺、為APP端、應用服務提供統一接口管控平臺、為第三方合作伙伴的業務對接提供授信可控的技術對接平臺

  • 分佈式架構,統一配置中心,服務治理.fegin(RPC)內部調用,微服務管理開發更便捷!
  • 統一API網關、訪問鑑權、接口管理、參數驗籤、接口調用更安全!
  • 深度整合SpringSecurity+Oauth2,統一認證協議、url級鑑權、更細粒度、靈活的ABAC權限控制!
  • 前後端分離方式開發應用,分工合作更高效!
  • 代碼合理封裝、簡單易懂、簡化開發流程!

開發平臺門戶預覽

運營管理後臺預覽

  • 後臺默認賬號:admin 123456
  • 後臺測試賬號:test 123456
  • SpringBootAdmin賬號:sba 123456

更新日誌

v-3.0.0 2019-07-19
1. 增加open-cloud-generator-server 在線代碼生成器
2. docs/sql/data/日期.sql 增量數據

v-3.0.0 2019-07-11 (重大更新)
1. 新增開發者管理

2. 調整項目結構
3. 優化ui交互方式
4. 調整部分代碼
5. 升級方式
+ 升級前注意對老數據進行備份
+ 重新導入common.propertis到配置中心
+ 重新執行 2019-07-19.sql oauth2.sql gateway.sql msg.sql 並手動刪除無效表名

v-2.1.0 2019-06-10
1. base_api表新增字段is_open是否公開訪問: 0-內部的 1-公開的
2. 更新base_api數據

v-2.1.0 2019-05-26 (重大變更)
1. 重新梳理base表結構和權限相關接口,解決用戶和客戶端動態分配權。 機制問題暫不支持用戶動態分配角色,需重新登錄獲取最新角色
2. 優化頁面功能
3. 升級nacos客戶端版本.支持1.0.0以上版本
5. 完善權限數據,去除外鍵約束.
6. 升級方式更新ui和服務代碼, 重新執行base.sql。手動刪除無效表
7. 移除app-admin模塊 相關功能遷移到opencloud-auth-provider中

v-2.0.0 2019-05-01
1. 升級SpringCloud Greenwich.SR1,SpringBoot 2.1.4.RELEASE
2. 重構項目結構
3. 優化Zuul網關性能
4. 增加官方SpringCloudGateway
5. 遷移Gateway功能到base服務中
6. 增加MybatisPlus

7. 使用.yml代替.properties

v-1.0.0 2019-03-18
1. 重構項目結構
2. 重構表結構
3. 重構授權邏輯
4. 提取公共配置,並遷移到Nacos配置中心
5. 優化功能

系統結構圖

open-cloud基於springcloud、oauth2、nacos打造的微服務開放平臺

功能介紹

open-cloud基於springcloud、oauth2、nacos打造的微服務開放平臺

服務端源碼

碼雲 github

vue後臺UI源碼

後臺UI源碼

vue門戶UI源碼

門戶UI源碼

使用手冊

使用手冊

代碼結構

open-cloud
├── docs -- 文檔及腳本
├── bin -- 執行腳本
├── config -- 公共配置,用於導入到nacos配置中心
├── sql -- sql文件
├── data -- 增量數據

├── components -- 公共組件
├── open-cloud-common-core -- 提供微服務相關依賴包、工具類、全局異常解析等
├── open-cloud-common-starter -- SpringBoot自動配置掃描
├── open-cloud-tenant-starter -- 多租戶模塊,多數據源自動切換(完善中...)
├── open-cloud-java-sdk -- 開放平臺api集成SDK(完善中...)

├── platform -- 平臺服務
├── open-cloud-api-spring-server -- API開放網關-基於SpringCloudGateway[port = 8888](暫不推薦.功能暫不完善)
├── open-cloud-api-zuul-server -- API開放網關-基於Zuul[port = 8888](推薦.功能完善)

├── open-cloud-base-client -- 平臺基礎服務接口
├── open-cloud-base-server -- 平臺基礎服務器[port=8233]
├── open-cloud-uaa-admin-server -- 平臺用戶認證服務器[port = 8211]
├── open-cloud-uaa-portal-server -- 門戶開發者認證服務器[port = 7211]
├── open-cloud-generator-server -- 在線代碼生成服務器[port = 5555]

├── services -- 通用微服務
├── open-cloud-msg-client -- 消息服務接口
├── open-cloud-msg-server -- 消息服務器[port = 8266]
├── open-cloud-task-client -- 任務調度接口
├── open-cloud-task-server -- 調度服務器[port = 8501]
├── open-cloud-bpm-client -- 工作流接口
├── open-cloud-bpm-server -- 工作流服務器[port = 8255]
├── open-cloud-sba-server -- SpringBootAdmin監控服務[port = 8849]
├── open-cloud-sso-ui-demo -- SSO單點登錄演示demo[port = 8849]

快速開始

上手難度:★★★★

本項目基於springCloud打造的分佈式快速開發框架. 需要了解SpringCloud,SpringBoot開發,分佈式原理。

  1. 準備環境
  • Java1.8 (v1.8.0_131+)
  • Nacos服務發現和註冊中心(v1.0.0+) 阿里巴巴nacos.io
  • Redis (v3.2.00+)
  • RabbitMq (v3.7+)(需安裝rabbitmq_delayed_message_exchange插件 下載地址)
  • Mysql (v5.5.28+)
  • Maven (v3+)
  • Nodejs (v10.14.2+)
  1. 執行創建數據庫open-platform並執行sql腳本
  • docs/sql/oauth2.sql
  • docs/sql/base.sql
  • docs/sql/gateway.sql
  • docs/sql/msg.sql
  • docs/sql/quartz.sql && task.sql ...
  1. 啟動nacos服務發現&配置中心,新建公共配置文件
  • 訪問 http://localhost:8848/nacos/index.html
  • 新建配置文件 ```
  • 項目目錄/docs/config/db.properties > db.properties
  • 項目目錄/docs/config/rabbitmq.properties > rabbitmq.properties
  • 項目目錄/docs/config/redis.properties > redis.properties
  • 項目目錄/docs/config/common.properties > common.properties
  1. 如圖:
open-cloud基於springcloud、oauth2、nacos打造的微服務開放平臺


  1. 修改主pom.xml
  2. 初始化maven項目
 maven clean install
  1. 本地啟動,默認不用修改
  

<config.server-addr>127.0.0.1:8848/<config.server-addr>

<config.namespace>

<discovery.server-addr>127.0.0.1:8848/<discovery.server-addr>
  1. 本地啟動(按順序啟動)
  2. [必需]BaseApplication(平臺基礎服務)
  3. [必需]UaaAdminApplication(平臺用戶認證服務器)
  4. [必需]ApiGatewayZuulApplication(推薦)或ApiGatewaySpringApplication(暫不推薦)
 訪問 http://localhost:8888
  1. 4.[非必需]SpringBootAdmin(監控服務器)(非必需)
 訪問 http://localhost:8849
  1. 前端啟動
 npm install 
npm run dev
  1. 訪問 http://localhost:8080
  2. 項目打包部署
  3. maven多環境打包,並替換相關變量
 mvn clean install package -P {dev|test|online}
  1. 項目啟動
./docs/bin/startup.sh {start|stop|restart|status} open-cloud-base-server.jar
./docs/bin/startup.sh {start|stop|restart|status} open-cloud-uaa-admin-server.jar
./docs/bin/startup.sh {start|stop|restart|status} open-cloud-api-zuul-server.jar

git地址:https://gitee.com/liuyadu/open-cloud


分享到:


相關文章: