快速重放http请求

本文探讨了在Linux环境下批量重放HTTP请求的两种主要方式:shell脚本和Python脚本。针对百万级别的请求,通过shell脚本进行文件分割并分布式处理能提高效率。而在Python中,虽然requests库不适合高并发,但结合asyncio和redis_lock可以实现异步请求。此外,文中还提及了其他可能的解决方案,如Java程序、多线程多进程、jmeter、阿里巴巴的jvm-sandbox以及goreplay等HTTP重放工具。
摘要由CSDN通过智能技术生成

批量重放http请求

场景: 有一些下游的http请求,由于应用程序配置失误,导致应用程序没有正确处理,现在从nginx上过滤出来这些请求,数量有百万个,怎么快速将这些重新请求一遍了?

方式1: shell脚本

#!/bin/bash
while read -r i
do {        
curl -s --connect-timeout 2  "$i" 
} &  
#执行循环丢进后台创建进程
done < file.txt

可以通过split 将大文件分割为小文件,分多台机器处理会更快

方式2:python 脚本

一般来说,python不太适合这种高并发请求的场合。
一般我们熟悉的requests ,但是 requests是同步的,他会等待上一个请求完成,才开始下一个。所以,这个速度也不会提升上去。
python3.5之后,多了一个asyncio模块,比较适合我们的场景。

#/usr/bin/python
import aiohttp
import asyncio
import redis
import redis_lock

'''
python3.6+
pip install aiohttp asyncio redis  python-redis-lock
'''

async def get(url):
    async 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值