实现身份验证后,蝙蝠侠担心在高峰时段,尤其是小丑企图释放阿卡姆疯人院所有罪犯时,可能会引发大量请求,导致服务器崩溃。为此,Robyn 向他介绍了常量请求和多核扩展功能,以增强应用程序的性能。
常量请求
Robyn 告诉蝙蝠侠,可以为每个路由预处理响应,这样即使在路由处理之前,响应就已准备好。这样做可以减少访问路由器的次数,从而提高响应速度。
Request
GET
/hello_world@app.get("/", const=True)
async def h():
return "Hello, world"
多核扩展
Robyn 告诉蝙蝠侠,可以使用 --workers 参数将应用程序扩展到多个核心。这样,系统会创建多个应用实例并分配负载,从而提升性能。
Request
python3 app.py --workers=N --process=M
authenticate 方法应在用户通过身份验证时返回 Identity 对象,否则返回 None。Identity 对象可以包含任意数据,并可以通过 request.identity 属性在路由方法中访问。
注意:该身份验证系统在底层主要通过 before request
中间件实现。您可以忽略此机制,使用自定义中间件实现自己的身份验证系统。然而,Robyn
提供的这一简单易用的解决方案已能满足大多数应用场景的需求。
下一步
在提升了应用程序的性能后,蝙蝠侠非常高兴,并希望应用也可以接收从前端项目中发出请求。
然而,这是他却遇到了 CORS(跨源资源共享)问题!于是,他向 Robyn 咨询如何解决这个问题。Robyn 向他介绍了相关的功能:
