ADC项目架构说明
ADC项目架构说明
一、整体架构

图中部分技术规划中未投入使用。
1.1 架构特点
ADC 采用前后端分离的微服务架构,所有功能均通过接口交互。
1.2 架构优势
- 前后端分离开发,提高开发效率
- 微服务架构,便于不同服务使用不同技术栈
- 每个服务独立数据库,天然分库
- 容器化部署,支持水平扩展
- 支持 k8s 集群,实现高可用
二、前端技术栈
2.1 微前端方案
采用 MicroApp 微前端解决方案(官网:https://jd-opensource.github.io/micro-app/)
MicroApp 是由京东前端团队推出的微前端框架,借鉴 WebComponent 思想,通过 js 沙箱、样式隔离、元素隔离、路由隔离模拟实现 ShadowDom 的隔离特性,并结合 CustomElement 将微前端封装成类 WebComponent 组件,实现微前端的组件化渲染。
特点:
- 技术栈无关,可用于任何前端框架
- 降低上手难度,提升工作效率
- 支持组件化渲染
摘抄自 microApp 官网(链接:https://jd-opensource.github.io/micro-app/docs.html#/ )
2.2 前端框架
Vue 3(官网:https://v3.cn.vuejs.org/)
2.3 UI 框架
Element Plus(https://element-plus.org/zh-CN/)
2.4 移动端方案(未来规划)
uniApp(官网:https://uniapp.dcloud.net.cn/)
uniApp 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到:
- iOS、Android、鸿蒙
- Web(响应式)
- 各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)
- 快应用等多个平台
摘抄自 uniApp 官网
三、后端技术栈
3.1 微服务架构
采用以 Nacos 作为服务中心和配置中心的微服务架构:
- 支持不同编程语言和版本
- 每个服务独立数据库部署
- 容器化隔离部署
- 支持 k8s 集群自动部署、扩展和管理
3.2 编程语言
PHP 8.3.0(主要语言)
由于微服务架构特性,后续可根据功能需求使用 Java、Go 等其他语言开发特定服务。
3.3 后端框架
Hyperf 3.1.0(官网:https://hyperf.io/)
Hyperf 是一个高性能、高灵活性的渐进式 PHP 协程框架:
- 内置协程服务器及大量常用组件
- 性能较传统基于 PHP-FPM 的框架有质的提升
- 标准组件基于 PSR 标准实现
- 基于强大的依赖注入设计,保证组件可替换与可复用
摘抄自 Hyperf 文档(链接:https://hyperf.wiki/3.1/#/ )
3.4 数据库
MySQL 8.0.3
国产替代方案:
- 阿里云 PolarDB
- 腾讯云 TDSQL
- OceanBase 等100%兼容 MySQL 8.0 协议的数据库
3.5 中间件技术
3.5.1 Redis
用途: 数据缓存
版本: ~7.0
部署策略: 共用 Redis 实例(数据量大时用集群) + 各个微服务用key 前缀隔离
官网: https://redis.io/
3.5.2 Nacos
用途: 服务发现和配置中心
版本: 2.5.1
官网: https://nacos.io/zh-cn/index.html
3.5.3 RabbitMQ
用途: 消息队列
版本: 3.13.7
官网: https://www.rabbitmq.com/
3.5.4 Xxl-Job
用途: 分布式任务调度
版本: 3.2.0
开源仓库: https://github.com/xuxueli/xxl-job
优势:
- 开发迅速、学习简单、轻量级、易扩展
- 解决传统计划任务部署问题
- 均衡分配任务到各服务器
- 避免单点故障
四、部署架构
4.1 服务器配置要求
4.1.1 最低配置
- CPU: 4核
- 内存: 16G
- 带宽: 5M
4.1.2 扩容建议
- 根据微服务访问量分别部署到不同服务器
- k8s 建议:单个 pod 为 2核2G 内存
4.2 操作系统
生产环境: 仅支持 Linux,不支持 Windows、macOS
4.3 Web 服务
要求: 仅支持 Nginx,不支持 Apache
功能:
- 接收用户请求后按 URL 规则分发给不同 Docker 端口
- 处理前端静态页面
4.4 部署示例
4.4.1 微服务单节点运行

4.4.2 微服务多节点运行
