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