Go to file
2021-12-03 18:23:42 +08:00
.gitignore xlog第一期版本 plantuml 2021-12-03 18:20:31 +08:00
flow.puml xlog第一期版本 plantuml 2021-12-03 18:20:31 +08:00
readme.md plantuml readme.md 2021-12-03 18:23:42 +08:00
sequence.puml xlog第一期版本 plantuml 2021-12-03 18:20:31 +08:00

@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