Python 持续每秒对 API 服务器发送 2000 个 HTTP 请求的比较好的解决方案?

2018-09-29 09:11:52 +08:00
 whereabouts
HTTP 的 Session 没什么要求。目标是一个 API 服务器,所以只有 1 个 IP。
或者还是 Nodejs/Golang 实现起来更合适一点?
7043 次点击
所在节点    程序员
22 条回复
zhengyongtao
2018-09-29 09:22:13 +08:00
用 tornado
lniwn
2018-09-29 09:23:24 +08:00
aiohttp clientsession, per_host_limit=2000,对于 1 秒这个问题,如果要求不是很严格,ayncio.sleep 即可。
iBaoger
2018-09-29 09:24:23 +08:00
apache ab 不好用吗
whereabouts
2018-09-29 09:29:48 +08:00
忘了说了,需求是可自定义 HTTP 请求的 Header、Cookie、Url 参数。 不过一般都能做到吧,主要是考虑下用哪个方案合适一点。
owenliang
2018-09-29 09:50:48 +08:00
你会啥用啥呗。
Akikiki
2018-09-29 09:51:41 +08:00
Locust
Qzier
2018-09-29 09:55:29 +08:00
有现成的工具为什么不用? nodejs 写的 loadtest,c 语言写的 wrk。
Kilerd
2018-09-29 10:12:56 +08:00
2000qps 先考虑一下数据库的优化吧,python 的极大框架都能撑起这个 qps。
实在不行就用 docker,横向扩展做负载均衡
uwh0am1
2018-09-29 10:22:28 +08:00
aio
crawl3r
2018-09-29 10:29:31 +08:00
requests + gevent + 多进程
ltoddy
2018-09-29 10:51:58 +08:00
asyncio + urlopen + concurrent.futures.ThreadExecutorPool
EINDEX
2018-09-29 14:07:41 +08:00
aiohttp
my3157
2018-09-29 14:11:51 +08:00
是压测么? 试试 tsung
gimp
2018-09-29 14:22:55 +08:00
试试 wrk 呢
qq976739120
2018-09-29 14:26:54 +08:00
ab
yc8332
2018-09-29 15:41:05 +08:00
go 吧。2000 个 goroutine 又简单。
janxin
2018-09-29 16:03:27 +08:00
https://locust.io/ 现成的框架提交个任务不就行了
Leigg
2018-09-29 19:10:53 +08:00
go 一下很轻松
exiaohao
2018-09-29 19:20:40 +08:00
自己撸代码就 requests + gevent, 闲得蛋疼用 celery 也可以啊
楼上说的 Locust 也可以了解一下~
zhzer
2018-09-29 19:23:17 +08:00
http 测试用 go 写很简单

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/493718

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX