最近在开发一个代理API项目中遇到一个问题,从上游请求中获取请求参数,请求参数包含多中类型的http请求,然后并发请求这些请求,获取响应报文,返回给上游请求 。
由于涉及到的流量有点大,原生的net/http库可能不满足性能要求,因为net/http接收一个请求后,需要开启一个协程处理它,当流量一旦,服务器会抗不住,目前我使用的fasthttp,fasthttp开启的是协程池,方便接收从上游来的HTTP请求,然后解析出上游请求的参数,提取需要代理发送的请求url1、url2、url3、... 、urln , 然后并发的发送这些请求。目前我遇到的问题是,设计一个协程池,从协程池中取协程,来出来处理这些请求,并获取每个请求的响应结果。这里涉及到一个问题,从上游接收http的协程,需要等待这些子URL获取到结果后,才能返回,写入响应报文,回复上游请求 。
// 请把代码文本粘贴到下方(请勿用图片代替代码)
相关分类