快过年了,也没什么心思工作了,上面也没安排什么繁重的工作了。 现在有大把的时间干自己喜欢的事情,一直都想下功夫看看uwsgi server的实现源码及uwsgi的协议。以前总是根据喜好挑着代码片段看,不系统。

先前遇到过python gunicorn 和 uwsgi 在不同io模型下性能差异问题,导致了下面这些一系列的Q&A , 还好通过这么几天的分析代码和测试知道是怎么一回事了。


这个关于python uwsgi的章节有点多,所以打算扔到后面去讲解,这么好的话题,咱们可不能这么草率就对付了,要好好从uwsgi源码层面捕捉一些问题.


该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.   http://xiaorui.cc/?p=4205 

那么本章的内容是什么?   正如标题那样,自己开发设计一个uwsgi的测试客户端,那么为什么要设计一个uwsgi的客户端呢?  uwsgi 还需要客户端么?   为什么是多功能呢?   疑问是不是多了不少。


我们知道uwsgi 和 gunicorn 实现的功能很类似,单说服务模式方面, gunicorn只有http模式,而uwsgi server有多个服务模式,它有http、tcp socket、unix domain socket 。 如果是http模式,那没得讲,直接用curl都可以访问的。 如果uwsgi切换到 tcp socket、unix domain socket模式,因为他们跑的协议是uWsgi protocol ,又因为他们有 unix domain socket (unix域套接字),这时候你用curl肯定是玩不转的,那么如何? 所以我定制一个uwsgi客户端来兼容这三个模式…


其实uwsgi的客户端不是必需品的, 我们以往测试uwsgi server,都是在nginx配置uwsgi_proxy代理后,再进行下一步测试。


一句话,为了方便测试uwsgi server 而开发的客户端.   代码倒是没什么难度,只是uwsgi protocol协议有点苦涩难懂,所以借助于nginx的uwsgi_proxy来一路抓包和strace分析….  这过程也是醉了….  


github 地址:  (记得给我这个github项目点star

https://github.com/rfyiamcool/uwsgi_cli


项目名, uwsgi_cli :

一些俗气的安装使用介绍.  

安装方法:

if not found uwsgi_cli bin, please set PATH . ( /usr/local/bin/ )

http mode

unix socket mode


tcp socket mode

POST 模式



END.



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品