挖井

类库大魔王的挖井日记

挖一口属于自己的井


Go语言操作Amazon S3

之前提到的Thumbnail Service是用准备用Amazon S3来存储的,因为图省事,网管找了个s3fs把S3 bucket直接mount到本地,于是就当成本地目录一样读写。今天网管突然提到S3连接并发和性能的问题,找了篇文章看了看,大概意思是并发过多或过少性能都不好(废话)!

于是就想不用s3fs了,直接用Amazon的API来操作吧,然后随手搜了一下Go语言的S3库,找到一个这两天还有commit的,而且README里自己也说目录有heavily used,果断试试。

然后写了点代码简单测试了一下,发现如果同时有1000个PUT请求的话,大概有200多个会出错,诡异的是错误消息居然是什么TLS握手失败,难道是客户端这边同时进行1000个连接的SSL计算然后吃不消了?不清楚了。再试了下同时500个PUT请求,跑了几次都没问题。想到我的服务器是预计是同时有1000-2000个客户端连接,每个客户端连接上传一个文件我就会有一个PUT请求,如果不是这次预先测试的话,可能同时就有1000-2000个PUT请求这种跑法了。而且还有除了PUT也有GET请求会很频繁,看来得再想想实现个“请求池”之类的东西,也就是限制一下同时发出请求的数量。

本文地址:

https://minidump.info/blog/2015/03/amazon-s3-in-golang/

上一篇

性能问题解决了

今天终于把Thumbnail Service的性能问题解决了。之前一直在客户端侧找原因,看现象一直是觉得客户端发命令发晚了。今天一咬牙用格式化打印出16进制和字符的方式把客户端要发的内容都打印出来,发现命令没发晚。但是从服务器端看,服务器端的命令handler收到命令确实晚了!于是想到一种情况...…

Job 全文阅读
下一篇

把iPad2升级到iOS8.2

2011年买的iPad2服役3年多了,一直用得不错,我当初买其实就图个新鲜感,新鲜劲一过就没什么兴趣了。妹子来了后,就几乎成了她的专属看片工具了。毕竟是款比较老的机型了,在iOS出8后,我就没再升级了,一直停留在7,因为7我都感觉比以前慢了不少,我怕8会使得机器更慢。不过前段时间升级了爱奇艺a...…

iOS 全文阅读