实践笔记
这一组文章不是在翻译官方文档,而是把 Robyn 用在真实项目里会遇到的取舍、坑和检查清单写成可照抄的流程。如果你已经看完 示例应用 和 API 参考,从这里继续最合适。
上线与运维
把 Robyn 应用送上生产的完整清单 :进程模型怎么取值、
robyn.env该配哪些、Dockerfile 与 Nginx 配置、systemd 保活,以及一份上线前检查表。Robyn 性能调优:从默认值到真实压测 :先用
wrk建立基线,再逐项调整;重点讲 async 处理器里做阻塞调用、连接池、静态资源这三件最影响吞吐的事。
迁移与选型
- 从 Flask / FastAPI 迁移到 Robyn :路由语法、请求对象、
Depends的替代写法逐项对照,并明确指出 Robyn 不是 ASGI 框架带来的生态代价。
单篇专题
五个可复用的中间件模式 :请求 ID、鉴权短路、IP 限流(含多进程陷阱)、统一响应头与耗时统计、全局异常兜底。
WebSocket 与 SSE 实时推送实战 :SSE 与 WebSocket 的选型依据、断线重连与心跳、以及
broadcast()在多进程下只覆盖本进程的问题及其 Redis 解法。
常见误区速查
| 误区 | 正确做法 |
|---|---|
生产环境忘记关 --dev | 开发用 --dev,生产用 --processes=N |
容器里忘设 ROBYN_HOST=0.0.0.0 | 容器内必须绑 0.0.0.0 才可达 |
| 以为多进程共享模块级变量 | 不共享,状态要放到 Redis 或 multiprocessing.Value |
在 async def 里用 requests | 换 httpx.AsyncClient,或用 asyncio.to_thread |
| 单进程内存滑窗做限流 | 多进程下会放大 N 倍,改用 Redis |