一 前言

“概念完整性是系统设计中最重要的考虑因素”。

//概念完整性:反映一系列连贯的设计思路,像建筑一样,风格统一,易于整合 ------《人月神话》

1 特性

  • 快速开发

    • (1) 多地域配置:配置支持多地域,配置可以统一管理

    • (2) 无需配置路由:根据 handlers 目录自动加载路由(目前不支持动态路由)

    • (3) 显示参数管理:Handler 的参数与 HTTP 参数保持一致,含有参数检查

    • (4) 简易调试模式:简易方便的 DEBUG

    • (5) 引擎之状态机:具有可复用性的状态处理

    • (6) 引擎之工作流:长流程分步执行,可生成 dot 流程图

    • (7) 对象关系映射:自带 ORM

    • (8) 定时任务调度:支持定时执行某些方法

  • 方便运维

    • (1) 请求完整追溯:响应 Header 中包含请求的 reqid(会记录在日志中),便于 trace

    • (2) 自定义响应头:可自定义 HTTP header,如增加固定的接口版本号

    • (3) 代码耗时打点:通过代码打点可以准确获代码执行耗时,用于排查性能问题

    • (4) 线程堆栈打印:发送 kill -10 ${pid} 触发,用于排查程序夯住问题

    • (5) 变量内存打印:发送 kill -12 ${pid} 触发,用于排查内存泄露问题

  • 容易扩展

    • (1) 消息队列通信:开启百川配置即成为消费者,以拉模式消费由其他实例发布的消息

2 架构(三驾马车)

三驾马车是中国古代特有的战车配置形式,其核心特征由一匹辕马与两匹梢(shao)马组成,辕马负责驾辕并保持车辆稳定,梢马负责拉长套以提升速度和爆发力

Butterfly 可以很方便将 Python 函数转换为 Http 服务,cmd,任务队列 task

2.1 HTTP 请求流

2.2 Queue msg

2.3 cmd

Last updated