服务基座
Go to file
BryantHe 65dfab0d47 doc: update readme 2023-12-03 17:53:46 +08:00
chassis doc: update readme 2023-12-03 17:53:46 +08:00
.gitignore 更新 chassis 2023-05-30 04:00:19 +08:00
LICENSE Initial commit 2023-05-21 01:34:58 +08:00
README.md doc: update readme 2023-12-03 17:53:46 +08:00
setup.py fix: adjust setup.py 2023-10-31 15:42:17 +08:00

README.md

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 作为 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 方面

tracing 方面

  • 尝试研究给 nameko 适配 skywalking agent