分享
Aster - Github 开发者评估应用
输入“/”快速插入内容
Aster - Github 开发者评估应用
用户529
用户529
2025年10月10日修改
架构图
技术选型
•
微服务框架
: Go-Zero 作为核心微服务框架,同时使用 goctl 工具提升开发效率,使用 proto 文件作为服务间的通信协议。
•
数据库
: 选择 MySQL 作为主要的数据存储。
•
缓存
: 使用 Redis 缓存数据,提高响应速度,减轻数据库压力。
•
服务发现
: 使用 Etcd 作为注册中心实现服务发现、服务注册
•
消息队列
: Kafka 用于异步获取数据进行更新,Asynq 用于任务发布
•
链路追踪
:结合 Go-Zero 集成的链路追踪功能,使用 Jaeger 进行服务调用链的追踪。
•
服务监控
:通过 Prometheus 进行系统监控,同时结合 Grafana 进行数据可视化,以便实时查看系统健康状态。
•
日志系统
: filebeat 进行日志收集,openobserve 实现日志分析以及日志数据可视化。
•
数据源
: 使用 go-github 调用 Github API 获取数据,同时配合少量的 Python 脚本爬取特定数据。
•
大语言模型
:接入 Deepseek-chat 大模型,用于实现部分内容的推断分析。
项目设计
1.
交互流程
与前端的交互
前端在获取 Analysis 部分数据时,需要先调用对应的
PostxxxTask
API。API 层收到请求后,会创建相应任务并提交到任务队列,同时将生成的
task_id
返回给前端。前端获取
task_id
后,需以它为参数构造
GetxxxTask
请求,并对该 API 进行轮询。后端会根据任务执行的不同阶段返回状态信息,直至任务执行完毕,最终返回结果数据。
请求执行流程
概览
画板
2.
Analysis 模块设计
2.1
开发者评分计算
开发者评分用于衡量开发者在开源社区中的影响力,本项目中结合三个方面来进行计算:
2.1.1
Repository
通过 Star、Fork、Commit、Comment、Issue、OpenPR、Review、MergePR 这些仓库的指标,配合不同指标对应的不同的权重,去计算一个仓库的影响力,评分公式如下:
Repository Score =
为不同的权重
2.1.2
Contribution