我必须实现一个Python应用程序,它对通过web服务(带有GET请求和JSON响应的API)提供的数据进行操作。
API服务器是用Java实现的。初步测试显示,如果通过urllib2 (每个请求打开和关闭连接)进行API调用,则会造成很大的开销。
如果我在API服务器中启用了AJP,那么应该使用哪个库来使用Python的AJP协议来执行请求?我在googled上搜索了Plup,但是我找不到用Python请求和使用数据的明确方法,而不仅仅是在其他地方代理它。
使用AJP是一个很好的解决方案吗?显然,我必须维护一个连接池来执行AJP请求,但是我在Plup中找不到任何相关的东西。
谢谢。
发布于 2011-08-28 15:47:09
我不知道AJP是什么。另外,您也没有打开“西格芬奇开销”的内容,所以我可能是一个回答这个问题的穷人。
但如果我是你,我会先尝试一些技巧:
启用HTTP1.1在urllib2上保持活动
(下面是一个使用另一个库Python urllib2 with keep alive的示例)
Http1.1保持活动连接不会关闭TCP/IP管道以处理后续请求。
使用生成/事件web服务器,它为urllib /执行非阻塞IO修补程序。
http://pypi.python.org/pypi/Spawning/
这将使Python中的并行化更加健壮,当应用程序中的开销是输入/输出时,而不是使用CPU处理请求。JSON解码很少是CPU绑定的。
有了这两个技巧,我们就可以在我们的Python应用程序中使用来自Microsoft IIS支持的API服务器(farm)的1000个请求/秒。
https://stackoverflow.com/questions/7221446
复制相似问题