python高性能框架-japronto浅测

前言:很久之前就听说python有个web框架可以媲美go、nodejs等高性能语言,周末有空特地看了下。

--------
背景了解:
japronto 是一个全新的,为 微服务 量身打造的python微框架,关于它的详细介绍可以看转载的这篇文章《用 Python 实现每秒处理 120 万次 HTTP 请求》 http://blog.csdn.net/u013128262/article/details/77415968 ,作者自己做了较详细的介绍。

官方英文介绍: Screaming-fast Python 3.5+ web micro-framework integrated with pipelining HTTP server based on uvloop and picohttpparser.

安装
机器:腾讯云香港机房1核1G1M(最便宜那种)
操作系统:ubuntu 16.04
python版本:python 3.5
sudo apt install python3-pip 安装python3的pip
pip 安装:
pip3 install -i http://mirrors.aliyun.com/pypi/simple/ japronto --trusted-host mirrors.aliyun.com
安装失败,连续换了几个源都找不到这个框架,遂放弃直接pip安装的思路。
源码安装:
python setup.py install 即可。

hello world!:
japronto用起来和flask有点像,一个基础的hello world如下:
from japronto import Application


def hello(request):
    return request.Response(text='Hello world!')


app = Application()
app.router.add_route('/', hello)
app.run(debug=True)

python3 hello.py 直接启动。
curl 127.0.0.1:8080 可以看到服务起来了。

压测一下:
这里我们选择wrk。
安装非常简单:
git clone https://github.com/wg/wrk. git
进入目录,直接make即可生成二进制可执行文件。
来一发小的压测:
./wrk -t10 -d20s -c10000 http://127.0.0.1:8080


这种最基础的机器还能达到8k qps
持续压20min看看:
./wrk -t10 -d20m -c10000 http://127.0.0.1:8080


也是能稳定到7k qps。

因为我的云主机比较差,7k qps的意义看不出来,我们这里就拿flask做个对比
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()


逻辑几乎一模一样,最简单的那种,看看我们的效果如何:


仅有550+ qps。

-----------------------------------
japronto现在没有一家公司在现网大规模使用,但是其高性能的表现是非常不俗的,这得益于其核心模块都是用c实现的。




  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值