系统架构设计
参考互联网分层模型,设计集团公司的ERP系统架构。
后端架构设计
主框架基座,使用强类型的静态编程语言。复杂定制的业务场景逻辑,则用动态脚本语言开发。
架构底座
- 编程语言:使用静态语言如:C, Go
- 主要职责:外网请求的唯一入口。负责接收,过滤,分发网络请求,记录日志,统计数据。
- 数据流转:数据在架构底座经过三层流转:网络防护层,业务分发层,结果处理层(负责最终响应,耗时统计等)。
- 网络防护层:过滤、拦截网络攻击。记录请求进来的时间begin_at。记录请求日志,包括IP,请求头,流量(数据包大小)。
- 业务分发层:对外业务网络请求的中央调度器。记录请求进来的时间begin_biz_at。通过URI路由映射,分发外部进来的网络请求到业务应用层的微服务。
- 结果处理层:对外响应请求结果。记录业务应用层完成请求的时间done_biz_at。
- 日志与统计组件:分析统计业务应用层,各个微服务,网络请求统计,包括耗时统计,API访问统计,报错统计。。。设置日志留存时间,防止存储空间不足。
业务应用层
- 编程语言:使用动态脚本语言。如Python, PHP
- 主要职责:处理业务逻辑,数据处理与存储。
- 组织形式:领域驱动设计,按业务场景解耦,明确职责边界。每个业务领域,服务名以stbiz_开头,组成微服务。
- 数据流转:微服务之间,通过TCP协议调用API接口进行内网通信。
前端架构设计
大规模复杂的企业中台前端架构。技术栈无关,低耦合,高扩展。
- 技术栈无关:主框架不限制接入应用的技术栈。支持Web Components标准。方便后期业务扩展和组件库的引入。
- 领域驱动支持:新业务领域,支持独立开发和部署。支持以前端微服务方式接入新扩展的业务。
- 前端的逻辑与UI分离的设计。无头组件和无头框架。
- 灵活高效:页面支持传统代码编程与低代码快速渲染2种方式。
- 低代码:支持可视化的前端设计器。使用 baidu/amis 组件。可视化设计器参考:https://github.com/aisuda/amis-editor-demo
- 前端逻辑层:使用 TanStack Query React 或者基于它的 Refine。
- 灵活的导航菜单:使用统一的API接口动态获取菜单,路由,前端组件。保证登录后可根据角色定制菜单和页面。
- 主框架暂定React,Vue组件可按需集成。例如使用Veaury
- 为保证项目的生命周期能尽可能长,推荐遵循行业标准而不是深度绑定某个技术栈。
系统架构图
- 后端架构图
- 前端架构图