Skip to content

Repository files navigation

🧪 FlowPilot

Node.js Backend Frontend License Stars

FlowPilot 是一个基于 Node.js (Egg.js) 的实验分流与泳道平台,支持实验管理、流量分配、一致性哈希分流。

✨ 特性

  • 🎯 一致性分流 - 基于 MurmurHash3 的一致性哈希,确保同一用户始终进入同一分组
  • 🚀 高性能 - Redis 缓存加速,毫秒级分流响应
  • 📊 可视化管理 - React + Ant Design 管理后台
  • 🔧 灵活配置 - 支持流量比例、白名单等多种分流策略
  • 📈 数据统计 - 实时流量统计与分析

🏗️ 技术栈

类型 技术
后端框架 Egg.js 3.x
数据库 MySQL 8.0
缓存 Redis 6.0
前端框架 React 19
UI 组件库 Ant Design 6
ORM Sequelize

📁 项目结构

├── app/
│   ├── controller/      # 控制器
│   ├── service/         # 服务层
│   ├── model/           # 数据模型
│   └── public/          # 静态资源
├── config/              # 配置文件
├── docs/                # 技术文档
│   └── TECHNICAL_DESIGN.md
├── admin-frontend/      # 管理后台前端
└── database/            # 数据库迁移脚本

🚀 快速开始

环境要求

  • Node.js >= 18.0.0
  • MySQL >= 8.0
  • Redis >= 6.0

安装依赖

npm install

配置数据库

编辑 config/config.default.js,配置 MySQL 和 Redis 连接信息。

初始化数据库

npm run db:init

启动服务

# 开发模式
npm run dev

# 生产模式
npm start

启动管理后台

cd admin-frontend
npm install
npm run dev

📡 API 示例

获取分流结果

GET /api/ab/allocate?userId=user123&experimentKey=homepage_button

响应:

{
  "code": 0,
  "data": {
    "experimentKey": "homepage_button",
    "groupKey": "treatment",
    "groupName": "实验组",
    "config": {
      "buttonColor": "#FF5722"
    }
  }
}

📖 文档

🗓️ 开发计划

  • 项目初始化
  • 技术文档编写
  • 数据库模型设计
  • 分流核心服务
  • 实验管理 API
  • 管理后台前端
  • 统计功能

📄 License

MIT

About

FlowPilot - 基于 Egg.js + React 的实验分流与泳道平台

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages