凌鲨整体架构

整体架构

|---------|----------------------|
| 通讯协议 | 备注 |
| webhook | 用于接入外部系统的推送信息 |
| grpc | 服务端和客户端主要通讯方式(业务接口) |
| mqtt | 推送消息,主要用于服务端和客户端数据同步 |

grpc协议

grpc协议定义放在proto项目中。在通讯上,服务端使用golang实现,客户端使用rust实现。我们额外生成了grpc的go和rust的代码。

协议简介

协议包含基础设施,用户,项目,公共资源,扩展功能协议,通知/事件几个部分。

基础设施相关协议

|----------------------|--------------|
| 协议定义 | 备注 |
| fs_api.proto | 文件存储 |
| client_cfg_api.proto | 用于获取服务端的能力列表 |
| admin_auth_api.proto | 管理后台验证 |

用户相关协议定义

|----------------|---------|
| 协议定义 | 备注 |
| user_api.proto | 用户信息和验证 |

项目相关协议定义

项目接口可以分为知识库,项目管理,项目沟通,项目信息几个部分。

项目信息

|----------------------------|-------------|
| 协议定义 | 备注 |
| project_api.proto | 项目信息和设置 |
| project_member_api.proto | 项目成员 |
| events_api.proto | 项目相关的研发行为记录 |
| events_subscribe_api.proto | 项目相关的研发行为订阅 |
| external_events_api.proto | 项目外部信息接入 |

知识库

|---------------------------|-----------------|
| 协议定义 | 备注 |
| project_entry_api.proto | 知识库内容入口 |
| project_doc_api.proto | 项目文档 |
| project_code_api.proto | 代码评论 |
| project_idea_api.proto | 项目知识点 |
| api_collection_api.proto | 接口集合 |
| project_board_api.proto | 信息面板 |
| project_recycle_api.proto | 知识库回收站 |
| http_custom_api.proto | 自定义http协议(接口集合) |

项目沟通

|----------------------------|--------|
| 协议定义 | 备注 |
| project_bulletin_api.proto | 项目公告 |
| project_chat_api.proto | 项目沟通 |
| project_comment_api.proto | 项目公共评论 |
| project_watch_api.proto | 关注信息 |

项目管理

|-------------------------------|---------|
| 协议定义 | 备注 |
| project_issue_api.proto | 任务/缺陷管理 |
| project_requirement_api.proto | 项目需求 |
| project_sprit_api.proto | 工作计划 |
| project_testcase_api.proto | 测试用例 |
| project_alarm_api.proto | 项目预警 |
| short_note_api.proto | 项目便签 |

公共资源相关协议定义

|---------------------------|------------------|
| 协议定义 | 备注 |
| appstore_api.proto | 微应用市场 |
| group_api.proto | 兴趣组信息 |
| group_member_api.proto | 兴趣组成员 |
| group_post_api.proto | 兴趣组帖子 |
| dev_container_api.proto | 研发环境软件包信息 |
| docker_template_api.proto | docker compose模板 |

扩展功能相关协议定义

|-----------------------|-----------|
| 协议定义 | 备注 |
| swarm_proxy_api.proto | swamg集群管理 |
| trace_proxy_api.proto | 链路追踪 |
| k8s_proxy_api.proto | k8s集群管理 |
| net_proxy_api.proto | 网络透传 |

通知和事件相关协议定义

通知

|-----------------------------------|-------------|
| 协议定义 | 备注 |
| notices/notices_board.proto | 信息面板数据同步 |
| notices/notices_entry.proto | 内容入口数据同步 |
| notices/notices_project.proto | 项目信息数据同步 |
| notices/notices_chat.proto | 项目沟通数据同步 |
| notices/notices_idea.proto | 项目知识点数据同步 |
| notices/notices_requirement.proto | 项目需求数据同步 |
| notices/notices_comment.proto | 项目评论数据同步 |
| notices/notices_issue.proto | 项目任务/缺陷数据同步 |
| notices/notices_testcase.proto | 项目测试用例数据同步 |

事件

|------------------------------------|-------------|
| 协议定义 | 备注 |
| events/events_atomgit.proto | atomgit相关事件 |
| events/events_gitlab.proto | gitlab相关事件 |
| events/events_project.proto | 项目事件 |
| events/events_code.proto | 代码评论相关事件 |
| events/events_gogs.proto | gogs相关事件 |
| events/events_requirement.proto | 项目需求事件 |
| events/events_entry.proto | 内容入口事件 |
| events/events_harbor.proto | harbor相关事件 |
| events/events_testcase.proto | 测试用例事件 |
| events/events_external_event.proto | 外部接入相关事件 |
| events/events_idea.proto | 知识点事件 |
| events/events_gitee.proto | gitee相关事件 |
| events/events_issue.proto | 任务/缺陷事件 |

grpc协议调试

在凌鲨客户端内容提供了grpc调用的微应用,可以用来调试grpc调用。

mqtt协议

mqtt主要传递的是通知信息。 每个用户会有一个通道,地址 user/{用户ID} 。每个通道访问都需要验证,验证信息在登录时会发送给客户端。

相关推荐
zh_xuan15 分钟前
kotlin常见面试题
开发语言·kotlin·面试题
Dawson Zhu1 小时前
【LLM推理与Serving⑨】业务模型推理引擎开发:以BEV自动驾驶为例的专用推理实践
人工智能·语言模型·架构·aigc·agi
Anymous1 小时前
我手写的 Redis 锁,输给了 10 秒的 TTL
后端·架构
草莓熊Lotso2 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
huaqianzkh3 小时前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
非优秀程序员12 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
沐晓时光13 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
Dawson Zhu16 小时前
【LLM推理与Serving⑪】MoE推理与MLA:DeepSeek-V3架构下的显存与通信权衡
人工智能·语言模型·架构·aigc·agi
David猪大卫19 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
fengci.21 小时前
CTF2MISC中等部分
开发语言·前端·学习