根的开始
软件架构说明
开发规范
项目目录规范
多数据源(项目默认 方案1.4.3 )
1.1 处理方案:分包、注解 切换两种
1.2 使用场景:多数据源主从/多数据源多库/多数据源主从+多库
1.3 问题处理:多数据源就脱离不了事务处理,如何处理事务的统一
1.4 实现方案:
1.4.1 分包:创建多个sqlsession ,通过不同包名分配不同的 sqlsessiontemplate 进行数据操作(参考分支 v0.1 )
1.4.2 注解:注解指定数据源,通过AOP形式进行数据源切换
1.4.3 分包+注解:通过拦截spring的 Service注解,解析包目录进行切换,切换支持spel表达式解析,能执行库操作(参考分支 v0.2)
1.5 问题解决思路
1.5.1 主从场景,使用spring事务即可,建议直接使用 dynamic插件进行使用 1.5.2 分库场景
1.5.2.1 事务:简单处理考虑使用 atomickos 的xa实现方案,进行强事务整合 (v0.1)
1.5.2.2 事务:复杂处理,引入 seata 服务,可使用 AT/TCC/SAGA 方案都可以达到最终一致性,(缺点就是需要引入单独的seata组件)
基础权限设计 [待实现]
2.1 基于 RBAC(Role-Based Access Control)模型的拓展模型RBAC3进行再次拓展,增加实体权限级别控制
接口模块设计 [待实现-黄艳龙]
3.1 满足接口参数的映射、转换、透传、自定义参数添加
3.2 满足对接平台与接口之间的权限控制,包含接口访问限制、流量控制、费用结算等
3.3 网关集成
服务设计 [待实现]
4.1 底层服务采用通用参数Map作为入参,便于后续进行热发布准备
热发布 [待实现]
frame功能列表 [待实现]
接口文档可视化
权限认证[待实现0-鼎雯]
公共
后台进程调度框架[powerJob集成]
cache模块设计
在 com.onepiece.gen.frame.cache 包目录下,所有缓存需要实现 ICache 接口,并重写缓存加载、获取、刷新方法 统一通过 CacheManager.getCacher获取对应缓存实例,进行缓存获取操作
规则模块设计
规则要素 : 平台、场景、业务、操作
校验模式
- 基于规则要素进行规则集匹配
- 基于单规则匹配
规则引擎 : 规则集、规则、场景、平台
应用
- 通过 RuleEngineFactory.getEnginer().fire() 方法统一进行校验,规则初始化统一放在RuleFactory 中,后期统一迁移
- 所有规则校验类必须实现 IValidator 接口 validate 方法
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。