# 速达荣耀Open **Repository Path**: erp9000/speedy-glory---open ## Basic Information - **Project Name**: 速达荣耀Open - **Description**: 速达荣耀Open开源ERP+AI编程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-25 - **Last Updated**: 2026-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 速达荣耀Open #### 介绍 速达荣耀Open开源ERP+AI编程 速达荣耀open ERP系统采用前后端分离架构,后端基于Java技术栈,前端基于Vue框架,实现高内聚、低耦合的企业资源管理解决方案,具体如下所示: # 一、整体架构概览 **架构模式**:B/S多层架构(前端分离 + 服务端分层) **核心特性:** - 基于Cookie的Session管理(Tomcat原生) - c3p0连接池动态多账套支持 - Struts 2.5拦截器链安全控制 - Vue + Element UI交互式前端 - PostgreSQL多数据库实例管理 # 二、关键技术栈配置
| 模块 | 技术实现 | 配置文件/代码定位 |
|---|---|---|
| HTTP服务 | Tomcat 8.5 | server.xml配置HTTP/HTTPS端口 |
| Session管理 | Tomcat JDBCStore持久化 | context.xml配置PersistentManager+JDBCStore |
| 数据库连接池 | c3p0-0.9.1.2动态多数据源 | ConnectPools类管理多账套连接 |
| 安全控制 | 三重拦截器链(参数过滤/登录校验/连接监控) | SafeParamInterceptor+CheckLoginIntercepter+ConnectionInterceptor |
| 异步任务 | ScheduledExecutorService线程池 | ScheduleTaskService配置10线程任务池 |
| 前端框架 | Vue 2.5 + Webpack 3.6 | package.json定义ElementUI/ECharts等依赖 |
**安全防护:**
- XSS/SQL过滤:通过Requests.safeParam方法清洗参数
- 会话劫持防护:SessionID绑定IP地址(代码未展示,需在CheckLoginIntercepter中实现)
# 四、数据库架构设计
## 1. 多账套数据模型
**命名规范:**
系统库:sd[产品ID]_cwaccset(如sd31512_cwaccset)
业务库:sd[产品ID]_[账套名](如sd31512_company1)
**数据隔离策略:**
通过ConnectPools类动态加载不同账套数据源
前端请求携带accsetName参数标识当前账套
## 2. 连接池监控指标
|监控项|阈值|处理策略|
|-|-|-|
|活跃连接数|>80% maxPoolSize|触发扩容警告|
|连接获取时间|>5000ms|记录慢连接日志|
|未关闭连接数|>5|强制回收并告警|
# 五、系统部署架构
**生产环境拓扑:**
**关键配置:**
**1. Tomcat智能分流服务**
```java
// 分流服务核心逻辑(部署在独立Tomcat实例)
@WebServlet("/redirect")
public class LoadBalanceServlet extends HttpServlet {
private static final Map
**架构优势对比**
|方案|传统Nginx负载均衡|Tomcat智能分流服务|
|-|-|-|
|会话保持|依赖ip_hash|Cookie绑定+服务端状态维护|
|动态权重|需手动调整weight|实时负载自动计算|
|故障恢复|依赖健康检查间隔|60秒自动剔除不可用节点|
|Java生态集成|需维护额外Nginx配置|与业务系统统一技术栈|
# 六、扩展性设计
## 1. 横向扩展能力
- **无状态服务**:Session数据持久化到数据库,支持节点动态扩容
- **数据库分片**:按账套名称分库,通过ConnectPools.getConnectionByName()动态路由
- **分流服务集群化**:通过ZooKeeper选举主分流节点,避免单点故障
- **动态扩容协议**:新业务节点启动后自动向分流服务注册
## 2. SaaS多租户改造路径
# 七、性能优化专项
## 1. 连接池参数调优
```java
// ErpSDWebServerStart初始化参数
ConnectPools.maxPoolSize = Integer.parseInt(p.getProperty("MaxPoolSize", "100"));
ConnectPools.minPoolSize = Integer.parseInt(p.getProperty("MinPoolSize", "3"));
```
## 2. SQL执行优化
**批量操作**:在UnFrozenTask中使用UPDATE...WHERE IN语句
**索引策略**:为所有账套的accset表建立复合索引
``` sql
CREATE INDEX idx_accset_name ON accset USING BTREE (lower(name));
```
# 八、运维监控体系
## 1. 健康检查指标
|检查项|检测频率|报警阈值|
|-|-|-|
|数据库连接池使用率|60秒|>85%持续5分钟|
|Tomcat活跃线程数|30秒|>200|
|Session泄漏数量|300秒|>10个/分钟|
## 2. 日志管理策略
- **ELK日志收集**:通过Filebeat采集Tomcat日志
- **慢SQL记录**:在ConnectionInterceptor中记录执行时间>2秒的SQL
# 九、灾备方案
**多级容灾设计:**
1. 实时热备:PostgreSQL流复制(主从同步)
2. 每日增量备份:
``` sql
pg_basebackup -h 主库IP -D /backup/$(date +%Y%m%d) -P -v
```
3. 异地容灾:通过DomainRefreshTask动态切换域名解析
**总结:**
本架构通过Tomcat原生Session管理实现高可用,c3p0动态连接池支撑多账套业务,Struts拦截器链提供纵深防御,配合PostgreSQL集群保障数据安全。前端Vue+Element UI实现高效交互,后端ScheduledExecutorService确保任务调度可靠性,为传统ERP系统向云原生演进提供平滑过渡方案。
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)