9 python web-services scalability flask
我正在评估python框架来构建REST API.我经历了很多框架,包括烧瓶,发现Flask非常有趣,易于使用,具有构建REST Web服务所需的所有功能.
我得到的一件事是在烧瓶文档中提到它使用"本地线程并且具有可伸缩性问题".
Flask使用线程本地对象(事实上它们也支持greenlet上下文,它们也支持greenlet上下文)用于请求,会话和一个额外的对象,你可以将自己的东西放在(g)上.为什么这不是一个坏主意?是的,使用线程本地通常不是一个好主意.它们会给不基于线程概念的服务器带来麻烦,并使大型应用程序难以维护.但Flask并不适用于大型应用程序或异步服务器.Flask希望快速轻松地编写传统的Web应用程序.
有人可以帮助我理解这一点,提到了哪些可扩展性问题以及其他框架如何处理这个?
这并不是真正的可扩展性问题,而是它会使维护复杂的代码库变得更加困难。这是因为线程局部变量被用作全局数据存储,以避免通过函数参数传递状态,这使得跟踪正在发生的事情变得更加困难。
就速度而言,线程局部变量并不是特别慢,但它们确实使使用异步框架变得困难或不可能,因为在异步框架中,许多任务在单个线程上运行很短的时间。
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |