服务端架构
flowchart LR
subgraph extern
atomgit
gitlab
gitee
harbor
end
subgraph server
grpc_port
http_port
metric_port
end
subgraph db
mongodb
redis
emitter
end
subgraph cloud
storage
mail
sms
end
server --- mongodb
server --- redis
server --- emitter
server --- storage
server -.- mail
server -.- sms
atomgit-- webhook ---http_port
gitlab-- webhook ---http_port
gitee-- webhook ---http_port
harbor-- webhook ---http_port
desktop
prometheus
desktop-- grpc ---grpc_port
desktop-- mqtt ---emitter
prometheus --- metric_port
组件说明
数据库
名称 | 版本要求 | 说明 |
---|
mongodb | 5.0以上 | 业务主数据库,需要开启事务支持 |
redis | 6.0以上版本 | 目前只支持单机版本。保存用户会话信息 |
emitter | v3.0以上 | 基于mqtt协议的订阅发布服务。用来推送信息,保证客户端和服务端数据同步。 |
云服务
由于国内有很多的云服务,我们把云服务抽象成了接口,还生成了go代码。
名称 | 接口定义 | 说明 |
---|
storage | extension_fs_api.proto | 用户保存文件。我们提供了本地实现和腾讯云cos实现 |
mail | extension_mail_api.proto | 发送注册邮件。我们提供的腾讯云实现。 |
sms | extension_sms_api.proto | 发送注册短信。我们提供的腾讯云实现。 |
服务端口
端口名称 | 说明 |
---|
grpc-port | 提供grpc服务,主要供客户端调用 |
http_port | 提供http服务,主要用于接收外部webhook请求 |
metric_port | 提供性能参数,用于prometheus收集性能数据 |
mqtt_port(emitter) | 用于推送信息给客户端,主要用于服务端和客户端数据同步 |