本文共 952 字,大约阅读时间需要 3 分钟。
\\\看新闻很累?看技术新闻更累?试试,每天上下班路上听新闻,有趣还有料!
\
ipify服务在上已扩展到超过300亿次请求。近期,该服务的开发者分享了他的。ipify是一种在线服务,应用可调用ipify提供的API,获取应用自身的外部IP地址。该服务最初使用node.js编写。为获得更好的可扩展性,服务已使用Go重写。
\\ipify的创建者是,最初意在解决他在一个项目开发中的需求。第一版是使用node.js编写的,并部署在Heroku上。该服务可用使用curl等工具访问,也可编程使用。服务网站是一个简单的前端,使用Amazon S3存储桶,部署在CloudFront上。Heroku提供的服务单元称为“”,最小服务单元为512 MB内存和单个CPU。dyno的维护代价低,是一种可选方案。dyno在进程故障时会自动重启,并且前端部署了负载均衡器。最小服务单元的费用为每月约7美元。Heroku上,由此可使用AWS提供的可靠性。
\\ipify已得到了广泛的使用,面临着可扩展性上的问题。虽然可以通过添加更多的硬件解决该问题,但是一些调查显示,通量仅为每秒10次请求。服务曾采用做了改进,实现加载多个进程以更好地利用多核系统。但是这一改进并不足以处理不断增长的服务流量。服务进而使用Go做了重写。出于性能上的考虑,重写时在众多方案中选用了由Go提供的软件包。重写使服务性能得到了显著的改善,占用内存更少(仅约5 MB),并可在单dyno部署上达到每秒处理超过2000次请求。此外,在字符串处理上的改进,进一步提高了服务的性能,使得每秒处理的请求数增加了1000次。服务的重写也降低了代价,ipify的运行仅需单dyno部署即可。宿主在AWS上的ipinfo.io等类似服务,。由于一种解决方案是使用付费更高的服务,因此可扩展性问题会转化为需要付出更高的代价。
\\ipify现在不仅被一些软件开发人员正常使用,也被一些恶意软件编写人员利用。这导致了大量的突发峰值流量,也导致该服务被一些反病毒软件商的公共阻止列表。当前,服务使用的最高峰值约每月300亿次请求,平均响应时间介于1到20毫秒。与其它一些服务不同,,同样也提供地理定位。
\\的客户端软件库以的形式。
\\查看英文原文:
转载地址:http://nzkul.baihongyu.com/