基于Spring+SpringMVC+Mybatis的分布式敏捷開發(fā)系統(tǒng)架構(gòu)
前言
本項目不僅僅是一個開發(fā)架構(gòu),而是努力打造一套從?前端模板?-?基礎框架?-?分布式架構(gòu)?-?開源項目?-?持續(xù)集成?-?自動化部署?-?系統(tǒng)監(jiān)測?-?無縫升級?的全方位J2EE企業(yè)級開發(fā)解決方案。
項目介紹
基于Spring+SpringMVC+Mybatis分布式敏捷開發(fā)系統(tǒng)架構(gòu),提供整套公共微服務服務模塊:內(nèi)容管理、支付中心、用戶管理(包括第三方)、微信平臺、存儲系統(tǒng)、配置中心、日志分析、任務和通知等,支持服務治理、監(jiān)控和追蹤,努力為中小型企業(yè)打造全方位J2EE企業(yè)級開發(fā)解決方案。
組織結(jié)構(gòu)
zheng
├── zheng-common -- SSM框架公共模塊
├── zheng-admin -- 后臺管理模板
├── zheng-ui -- 前臺thymeleaf模板[端口:1000]
├── zheng-config -- 配置中心[端口:1001]
├── zheng-upms -- 用戶權(quán)限管理系統(tǒng)
| ├── zheng-upms-common -- upms系統(tǒng)公共模塊
| ├── zheng-upms-dao -- 代碼生成模塊,無需開發(fā)
| ├── zheng-upms-client -- 集成upms依賴包,提供單點認證、授權(quán)、統(tǒng)一會話管理
| ├── zheng-upms-rpc-api -- rpc接口包
| ├── zheng-upms-rpc-service -- rpc服務提供者
| └── zheng-upms-server -- 用戶權(quán)限系統(tǒng)及SSO服務端[端口:1111]
├── zheng-cms -- 內(nèi)容管理系統(tǒng)
| ├── zheng-cms-common -- cms系統(tǒng)公共模塊
| ├── zheng-cms-dao -- 代碼生成模塊,無需開發(fā)
| ├── zheng-cms-rpc-api -- rpc接口包
| ├── zheng-cms-rpc-service -- rpc服務提供者
| ├── zheng-cms-search -- 搜索服務[端口:2221]
| ├── zheng-cms-admin -- 后臺管理[端口:2222]
| ├── zheng-cms-job -- 消息隊列、任務調(diào)度等[端口:2223]
| └── zheng-cms-web -- 網(wǎng)站前臺[端口:2224]
├── zheng-pay -- 支付系統(tǒng)
| ├── zheng-pay-common -- pay系統(tǒng)公共模塊
| ├── zheng-pay-dao -- 代碼生成模塊,無需開發(fā)
| ├── zheng-pay-rpc-api -- rpc接口包
| ├── zheng-pay-rpc-service -- rpc服務提供者
| ├── zheng-pay-sdk -- 開發(fā)工具包
| ├── zheng-pay-admin -- 后臺管理[端口:3331]
| └── zheng-pay-web -- 演示示例[端口:3332]
├── zheng-ucenter -- 用戶系統(tǒng)(包括第三方登錄)
| ├── zheng-ucenter-common -- ucenter系統(tǒng)公共模塊
| ├── zheng-ucenter-dao -- 代碼生成模塊,無需開發(fā)
| ├── zheng-ucenter-rpc-api -- rpc接口包
| ├── zheng-ucenter-rpc-service -- rpc服務提供者
| └── zheng-ucenter-web -- 網(wǎng)站前臺[端口:4441]
├── zheng-wechat -- 微信系統(tǒng)
| ├── zheng-wechat-mp -- 微信公眾號管理系統(tǒng)
| | ├── zheng-wechat-mp-dao -- 代碼生成模塊,無需開發(fā)
| | ├── zheng-wechat-mp-service -- 業(yè)務邏輯
| | └── zheng-wechat-mp-admin -- 后臺管理[端口:5551]
| └── zheng-ucenter-app -- 微信小程序后臺
├── zheng-api -- API接口總線系統(tǒng)
| ├── zheng-api-common -- api系統(tǒng)公共模塊
| ├── zheng-api-rpc-api -- rpc接口包
| ├── zheng-api-rpc-service -- rpc服務提供者
| └── zheng-api-server -- api系統(tǒng)服務端[端口:6666]
├── zheng-oss -- 對象存儲系統(tǒng)
| ├── zheng-oss-sdk -- 開發(fā)工具包
| ├── zheng-oss-web -- 前臺接口[端口:7771]
| └── zheng-oss-admin -- 后臺管理[端口:7772]
├── zheng-message -- 實時通知系統(tǒng)
| ├── zheng-message-sdk -- 開發(fā)工具包
| ├── zheng-message-server -- 服務端[端口:8881,SocketIO端口:8882]
| └── zheng-message-client -- 客戶端
├── zheng-shop -- 電子商務系統(tǒng)
└── zheng-demo -- 示例模塊(包含一些示例代碼等)
├── zheng-demo-rpc-api -- rpc接口包
├── zheng-demo-rpc-service -- rpc服務提供者
└── zheng-demo-web -- 演示示例[端口:9999]
技術(shù)選型
后端技術(shù):



前端技術(shù):


架構(gòu)圖

模塊依賴

模塊介紹
zheng-common
Spring+SpringMVC+Mybatis框架集成公共模塊,包括公共配置、MybatisGenerator擴展插件、通用BaseService、工具類等。
zheng-admin
基于bootstrap實現(xiàn)的響應式Material Design風格的通用后臺管理系統(tǒng),zheng項目所有后臺系統(tǒng)都是使用該模塊界面作為前端展示。
zheng-ui
各個子系統(tǒng)前臺thymeleaf模板,前端資源模塊,使用nginx代理,實現(xiàn)動靜分離。
zheng-upms
本系統(tǒng)是基于RBAC授權(quán)和基于用戶授權(quán)的細粒度權(quán)限控制通用平臺,并提供單點登錄、會話管理和日志管理。接入的系統(tǒng)可自由定義組織、角色、權(quán)限、資源等。用戶權(quán)限=所擁有角色權(quán)限合集+用戶加權(quán)限-用戶減權(quán)限,優(yōu)先級:用戶減權(quán)限>用戶加權(quán)限>角色權(quán)限
zheng-oss
文件存儲系統(tǒng),提供四種方案:
阿里云?OSS
騰訊云?COS
七牛云
本地分布式存儲

zheng-api
服務網(wǎng)關(guān),對外暴露統(tǒng)一規(guī)范的接口和包裝響應結(jié)果,包括各個子系統(tǒng)的交互接口、對外開放接口、開發(fā)加密接口、接口文檔等服務,可在該模塊支持驗簽、鑒權(quán)、路由、限流、監(jiān)控、容錯、日志等功能。示例圖:

zheng-cms
內(nèi)容管理系統(tǒng):支持多標簽、多類目、強大評論的內(nèi)容管理,有基本單頁展示,菜單管理,系統(tǒng)設置等功能。
zheng-pay
一站式支付解決方案,統(tǒng)一下單接口,支持支付寶、微信、網(wǎng)銀等多種支付方式。不涉及業(yè)務的純粹的支付平臺。
統(tǒng)一下單(統(tǒng)一下單接口、統(tǒng)一掃碼)、訂單管理、數(shù)據(jù)分析、財務報表、商戶管理、渠道管理、對賬系統(tǒng)、系統(tǒng)監(jiān)控。

zheng-ucenter
通用用戶管理系統(tǒng), 實現(xiàn)最常用的用戶注冊、登錄、資料管理、個人中心、第三方登錄等基本需求,支持擴展二次開發(fā)。
zheng-wechat-mp
微信公眾號管理平臺,除實現(xiàn)官網(wǎng)后臺自動回復、菜單管理、素材管理、用戶管理、消息群發(fā)等基礎功能外,還有二維碼推廣、營銷活動、微網(wǎng)站、會員卡、優(yōu)惠券等。
zheng-wechat-app
微信小程序后臺
zheng-message
基于Netty實現(xiàn)SocketIO的實時推送系統(tǒng)。支持命名空間、二進制數(shù)據(jù)、SSL、ACK等功能。
環(huán)境搭建
開發(fā)工具:
MySql: 數(shù)據(jù)庫
jetty: 開發(fā)服務器
Tomcat: 應用服務器
SVN|Git: 版本管理
Nginx: 反向代理服務器
Varnish: HTTP加速器
IntelliJ IDEA: 開發(fā)IDE
PowerDesigner: 建模工具
Navicat for MySQL: 數(shù)據(jù)庫客戶端
開發(fā)環(huán)境:
Jdk7+
Mysql5.5+
Redis
Zookeeper
ActiveMQ
Dubbo-admin
Dubbo-monitor
項目演示
預覽圖
?
?
?
?
數(shù)據(jù)模型

拓撲圖

項目地址
https://gitee.com/shuzheng/zheng?_from=gitee_search
