BryantHe 65dfab0d47 | ||
---|---|---|
chassis | ||
.gitignore | ||
LICENSE | ||
README.md | ||
setup.py |
README.md
chassis <ˈʃæsi>
chassis <ˈʃæsi> n. 底盘,底架
仓库名寓意服务的底盘,基础库。搭建微服务底盘是为了简化服务的创建过程,同时确保开发者遵循这套开发标准。
包含的特性
已包含
- 模板代码
- nameko 微服务
- apiflask Web 服务
- rocketry 定时任务服务
- 服务注册和发现 (RabbitMQ)
- 可观测 Observability
- Metrics
- Statsd + Prometheus + Grafana
- Logging
- fluentd + ELK
- Error Reporting
- Sentry
- Metrics
- 数据存储相关 utils
- Sqlalchemy
- 连接池
- 读写分离
- 数据库迁移
- Alembic
- Sqlalchemy
TODO
- environs 替代 python-dotenv
- 可观测 Observability
- Tracing
- OpenTelemetry
- Skywalking
- Tracing
- 事务
- 基于开源库 DTM 实现 Saga 模式
- 高可用
- 重试
- 断路器
- 限流
- 缓存
- 健康检查
- 数据存储相关 utils
- Redis 连接池
- ElasticSearch
- mongodb 相关库
- 全局配置服务
- 配置工具
- 代码生成工具
- 容器打包工具
实现的功能
- 服务注册和发现(RabbitMQ)
- 同步/异步传输(RabbitMQ)
- 负载均衡(RabbitMQ)
- 降级(消息确认+断路器)
- 健康检查
- 通过可观测实现(Metrics + Logging + Tracing + Error Reporting)
部署
目前使用 docker compose 作为 single node 编排管理容器
后续期望迁移到 docker swarm or k8s 编排管理容器
安装方法
基础代码库:
python3 -m pip install --trusted-host=gitea.bearcatlog.com git+https://gitea.bearcatlog.com/BryantStudio/chassis.git@main
备忘
metrics 方面
- 关注 nameko-prometheus 的进展
tracing 方面
- 尝试研究给 nameko 适配 skywalking agent