13
我曾經使用過,而幾十個線程將被s3.putObject上傳圖片Amazon S3是否有連接池?
public static AmazonS3Client s3 = null;
...
BasicAWSCredentials c = new BasicAWSCredentials("absadgwslkjlsdjgflwa");
s3 = new AmazonS3Client(c);
只有一個實例S3 IS創建的代碼()。在轉儲信息中,我可以看到一個線程會鎖定唯一的實例s3而其他人正在等待。
所以我想也許這將是更快,如果我使用下面的代碼:
BasicAWSCredentials c = new BasicAWSCredentials("absadgwslkjlsdjgflwa");
for(int i = 0; i < 10; i++)
amazonS3[i] = new AmazonS3Client(c);
每次系統會獲得一個隨機S3實例,然後上傳圖片。
private static AmazonS3 getS3(){
int i = (int)(Math.random() * 10);
return amazonS3[i];
}
但似乎系統變慢了。爲什麼會發生? 也許唯一的實例s3已經使用連接池?我很困惑。
感謝您的幫助。你是對的。 – 2013-05-08 05:20:53
因爲我們中的文化程度較低......你是說Mark_H **不應該**製作S3客戶端陣列嗎?你是否建議他應該使用單個S3客戶端並將其傳遞給不同的線程? – mmcrae 2015-02-02 22:14:13
你指的是這裏的setMaxConnections方法,我猜? – rogerdpack 2015-07-23 20:48:22