一个基于FastAPI、Traefik和Consul的微服务框架,包含完整的服务发现、API网关和认证机制,支持Docker Compose一键部署。
- 服务发现:使用Consul实现服务注册与健康检查
- API网关:通过Traefik实现请求路由、负载均衡和认证中间件
- 认证授权:基于JWT的统一认证服务
- 容器化部署:所有组件Docker化,通过docker-compose一键启动
- 可扩展性:轻松添加新的微服务,自动集成到现有框架
- Consul:服务注册与发现中心
- Traefik:API网关,负责路由和负载均衡
- 认证服务:处理用户认证和JWT令牌发放
- 用户服务:用户管理相关API
- 产品服务:产品管理相关API(示例服务)
- 前端服务:基于Vue.js开发的用户界面,提供可视化操作
- Docker
- Docker Compose
# 克隆仓库
git clone <仓库地址>
cd fastapi-microservice-framework
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps- Traefik管理面板:http://localhost:8080
- Consul管理界面:http://localhost:8500
- API网关入口:http://localhost
- 前端服务:http://localhost (通过API网关访问)
# 获取访问令牌
curl -X POST "http://localhost/api/auth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=admin&password=secret"
# 使用令牌访问用户服务
curl "http://localhost/api/users" \
-H "Authorization: Bearer <your_token>"
# 使用令牌访问产品服务
curl "http://localhost/api/products" \
-H "Authorization: Bearer <your_token>".
├── docker-compose.yml # 服务编排配置
├── traefik/ # Traefik网关配置
│ └── traefik.yml
├── services/
│ ├── auth/ # 认证服务
│ ├── frontend/ # 前端服务
│ ├── user/ # 用户服务
│ └── product/ # 产品服务
├── .env.example # 环境变量示例
└── README.md
添加新的微服务只需以下步骤:
- 在
services目录下创建新服务文件夹 - 实现FastAPI应用并添加Consul服务注册逻辑
- 在
docker-compose.yml中添加服务配置 - 配置Traefik路由规则
- 替换所有默认密钥和密码
- 配置HTTPS证书
- 添加数据持久化存储
- 配置适当的资源限制
- 添加监控和日志收集
- 发布日期: 请查看 base-v1.0.0 tag 获取详细信息
提示: 该版本对应分支为
base-stable,如需长期维护版本,请基于此分支进行开发。
这是第一个基础入门版本,包含以下主要特性:
- 完整的微服务架构搭建,基于FastAPI、Traefik和Consul
- 实现了认证服务、用户服务和产品服务
- 集成了前端服务,提供可视化操作界面
- 支持服务发现、负载均衡和API网关路由
- 提供了Docker Compose配置,便于快速部署