轻松编写高效的网络守护程序(http、ssh…)。
api_hour的Python项目详细描述
API小时
API Hour是一个轻量级的后台程序框架,它允许您编写功能强大的应用程序。
它的创建是为了满足对简单、健壮和超高速服务器端环境的需要,以便轻松地构建非常高效的守护进程。
默认情况下,api小时启动工具包(cookiecutter)为您创建一个http守护进程来开发web服务。
通过API小时,您可以将任何异步服务器库快速转换为多处理后台程序,准备好投入生产。
厨房桌子上的快速脏http基准
规模:在30秒内同时连接400个连接的查询数。
在API Hour和Gunicorn之间的Dell Precision M6800上进行的基准测试,共有16名工人。
有关详细信息,请阅读基准中的信息。
架构比工具更重要。
我们使用异步和多进程模式,结合在一起,以处理尽可能多的http请求。
理想情况下,限制应该是网卡,而不是CPU或内存。
此外,我们还尝试尽可能减少代码和异步套接字之间的层。
对于每一层,我们在性能和简单性方面都使用最好的:
- 异步 :一个简单的异步框架,直接集成到python 3.4+
- aiohttp.web :异步+web框架的http协议实现
- ujson :最快的json序列化
如何启动api小时项目?
您可以按照我们的一个教程进行学习。
要求
- 巨蟒3.5+
安装
遵循官方文档./p>
许可证
API小时 在Apache2许可下提供。
架构
API小时是代码和Gunicorn之间的粘合剂,可以在多个进程中启动代码。
原点
api小时是aiorest的一个分支,现在只基于gunicorn进行多处理。
谢谢
感谢Gunicorn、Airest、AioHttp和Asyncio社区,他们在API小时内完成了999999%的工作。
特别感谢Airest的创造者Andrew Svetlov。
API小时目标
- 快速 :API小时自下而上设计为非常快速,能够处理巨大的负载。它使用Python3及其新的强大的异步包。
- 可伸缩性 :API Hour具有弹性,并且易于伸缩。
- 轻量级 :
- 小代码库 :减少意味着更快:处理请求的代码库尽可能小。除了这个基本的脚印,您当然可以激活、预加载和初始化更多的插件或包,但这是您的选择。
- 灵活的设置 :有些人在使用许多依赖项方面没有问题,而另一些人则希望没有依赖项(python除外)。有些人可以在性能上稍微放松一点,以便于(和速度)编码,而另一些人不会为现成的功能牺牲一毫秒。这些选项由您选择,因此没有强制的额外层、插件或中间件。