diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a87cb72 --- /dev/null +++ b/readme.md @@ -0,0 +1,67 @@ +```plantuml +@startuml xlog_server_seq + +box "log操作平台" #Transparent +participant xlog操作平台前端 +participant xlog操作平台后台服务 +end box + +box "业务服务" #Transparent + participant 命令下发服务 + participant 鉴权服务 +end box + +box "客户端" #Transparent + participant client +end box + +box "XlogServer" #Transparent +participant xlog_server +participant 临时缓存文件 +participant 本地存储 +end box + + + +group 触发客户端上传操作 + xlog操作平台前端 -> xlog操作平台后台服务: 操作发送[gid,userid] + xlog操作平台前端 <-- xlog操作平台后台服务: 等待上传成功状态 + + xlog操作平台后台服务 -> 命令下发服务: 发送需要上传[gid,userid] + 命令下发服务 -> client: 上线后发送上传命令 + alt 日志存在 + loop 直到文件完整 + client -> xlog_server: 初始化/根据剩余范围数据上传 + xlog_server -> 鉴权服务: 发送Token确权 + 鉴权服务 --> xlog_server: 确认权限 + alt 确权成功 + xlog_server -> 临时缓存文件: 写入范围数据块 + 临时缓存文件 --> xlog_server: 文件完成的进度和剩余需要数据范围 + xlog_server --> client: 返回剩余数据范围/文件状态(完成?) + xlog_server -> 本地存储: 文件完整后保存 + else 失败返回权限错误代码 + break 上传操作停止 + xlog_server --> client: 无效token + end + + end + end + xlog_server -> xlog操作平台后台服务: 发送上传成功状态 + xlog操作平台后台服务 -> xlog操作平台前端: 更新上传状态 + else 日志不存在 + client -> xlog_server: 日志文件不存在 + xlog_server -> xlog操作平台后台服务: 日志不存在 + xlog操作平台后台服务 -> xlog操作平台前端: 更新上传文件日志不存在状态 + end +end + +group xlog查询操作 #Transparent + xlog操作平台前端 -> xlog操作平台后台服务: 查询文件信息 + + xlog操作平台后台服务 -> 本地存储: 查询文件信息 + 本地存储 --> xlog操作平台后台服务: 返回文件信息和相关下载路径 + xlog操作平台后台服务 --> xlog操作平台前端: 返回相关信息 +end + +@enduml +``` \ No newline at end of file