我正在使用go aws sdk将对象放到s3中。上传文件大约需要1秒钟。为了测试并发性,我有一个http服务器,我用ab -c10 -n10 http://localhost:8080
命中,处理程序调用此代码:
func (service *Service) LogResponseManager(resp gorequest.Response, s3key string) {
uploader := service.S3Manager
defer resp.Body.Close()
params := &s3manager.UploadInput{
Bucket: aws.String("cslogs.sellbrite.com"), // Required
Key: aws.String(s3key), // Required
Body: resp.Body,
ContentType: aws.String("text/plain"),
}
uploader.Upload(params)
}
我正在使用echo服务器来接收请求,如果我只是在处理程序中休眠1秒,那么并行执行所有10个请求的时间仅为1秒。但是,当上传s3时,执行10个并发请求的时间似乎是串行加起来,接近8秒。 go sdk是不是同时执行s3上传?