You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.6 KiB
86 lines
2.6 KiB
@startuml 轻松聘mydreamjob_产品开发方案_架构图
|
|
|
|
' =========================
|
|
' 轻松聘(mydreamjob)产品开发方案 — 架构图
|
|
' =========================
|
|
|
|
title 轻松聘(mydreamjob)产品开发方案 - 总体架构
|
|
|
|
skinparam rectangle {
|
|
BackgroundColor<<client>> #E3F2FD
|
|
BackgroundColor<<gateway>> #FFF3E0
|
|
BackgroundColor<<app>> #E8F5E9
|
|
BackgroundColor<<differentiate>> #FCE4EC
|
|
BackgroundColor<<data>> #F3E5F5
|
|
BorderColor #455A64
|
|
FontStyle bold
|
|
}
|
|
|
|
skinparam defaultTextAlignment center
|
|
skinparam componentStyle rectangle
|
|
skinparam note {
|
|
BackgroundColor #FFFDE7
|
|
BorderColor #F57F17
|
|
}
|
|
|
|
' ---------- 客户端层 ----------
|
|
package "客户端层" {
|
|
[Android App] as Android <<client>>
|
|
[iOS App] as iOS <<client>>
|
|
}
|
|
|
|
' ---------- 跨端框架(核心差异化) ----------
|
|
rectangle "Flutter 3 跨端\n(一套代码出双端)" <<differentiate>> as Flutter
|
|
|
|
Android -[hidden]right- iOS
|
|
Android -down- Flutter : 渲染
|
|
iOS -down- Flutter : 渲染
|
|
|
|
' ---------- API 网关 ----------
|
|
rectangle "API 网关 / Nginx" <<gateway>> as Gateway
|
|
|
|
Flutter -down- Gateway : HTTPS / JSON
|
|
Android -down- Gateway : HTTPS / JSON
|
|
iOS -down- Gateway : HTTPS / JSON
|
|
|
|
' ---------- 应用层 ----------
|
|
package "应用服务层 (Spring Boot 3.x · Java 17)" <<app>> {
|
|
|
|
rectangle "Spring Security\n(JWT 鉴权 / RBAC 权限)" as Security
|
|
rectangle "业务服务\n账号/档案/企业/岗位/投递/沟通" as Biz
|
|
rectangle "ranking 评价排名引擎\n(异步批算)" as Ranking <<differentiate>>
|
|
rectangle "AI 适配层\n(模型调用/降级/成本控制)" as AI
|
|
rectangle "运营后台 API" as Admin
|
|
|
|
note right of Ranking
|
|
核心差异化模块
|
|
end note
|
|
|
|
Security -[hidden]down- Biz
|
|
Biz -[hidden]down- Ranking
|
|
Ranking -[hidden]down- AI
|
|
AI -[hidden]down- Admin
|
|
}
|
|
|
|
Gateway -down- Security : 路由转发
|
|
Security -down- Biz : 鉴权后
|
|
Biz -down- Ranking : 调用
|
|
Biz -down- AI : 调用
|
|
Admin -up- Biz : 读写
|
|
|
|
' ---------- 数据层 ----------
|
|
package "数据存储层" <<data>> {
|
|
database "MySQL 8\n主数据" as MySQL
|
|
database "Redis\n缓存 / 限流" as Redis
|
|
queue "RabbitMQ\n异步队列" as MQ
|
|
storage "MinIO / S3\n文件存储" as OSS
|
|
}
|
|
|
|
Biz -down- MySQL : CRUD
|
|
Biz -down- Redis : 缓存 / 限流
|
|
Ranking -down- MQ : 异步批算任务
|
|
Biz -down- OSS : 简历 / 图片
|
|
AI -down- Redis : 限流 / 缓存
|
|
Admin -down- MySQL : 读写
|
|
|
|
@enduml
|
|
|