写点什么

在 Heroku 上扩展 ipify 服务

  • 2018-02-17
  • 本文字数:975 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

ipify 服务在 Heroku 上已扩展到超过 300 亿次请求。近期,该服务的开发者分享了他的经验。ipify 是一种在线服务,应用可调用ipify 提供的API,获取应用自身的外部IP 地址。该服务最初使用node.js 编写。为获得更好的可扩展性,服务已使用Go 重写。

ipify 的创建者是 Randall Degges ,最初意在解决他在一个项目开发中的需求。第一版是使用 node.js 编写的,并部署在 Heroku 上。该服务可用使用 curl 等工具访问,也可编程使用。服务网站是一个简单的前端,使用 Amazon S3 存储桶,部署在 CloudFront后端上。Heroku 提供的服务单元称为“ dyno ”,最小服务单元为 512 MB 内存和单个 CPU。dyno 的维护代价低,是一种可选方案。dyno 在进程故障时会自动重启,并且前端部署了负载均衡器。最小服务单元的费用为每月约 7 美元。Heroku宿主在AWS 上,由此可使用AWS 提供的可靠性。

ipify 已得到了广泛的使用,面临着可扩展性上的问题。虽然可以通过添加更多的硬件解决该问题,但是一些调查显示,通量仅为每秒 10 次请求。服务曾采用 node.js 的 cluster 模块做了改进,实现加载多个进程以更好地利用多核系统。但是这一改进并不足以处理不断增长的服务流量。服务进而使用 Go 做了重写。出于性能上的考虑,重写时在众多方案中选用了由 Go 提供的 httprouter 软件包。重写使服务性能得到了显著的改善,占用内存更少(仅约 5 MB),并可在单 dyno 部署上达到每秒处理超过 2000 次请求。此外,在字符串处理上的改进,进一步提高了服务的性能,使得每秒处理的请求数增加了 1000 次。服务的重写也降低了代价,ipify 的运行仅需单 dyno 部署即可。宿主在 AWS 上的 ipinfo.io 等类似服务,也面对同样的可扩展性问题。由于一种解决方案是使用付费更高的服务,因此可扩展性问题会转化为需要付出更高的代价。

ipify 现在不仅被一些软件开发人员正常使用,也被一些恶意软件编写人员利用。这导致了大量的突发峰值流量,也导致该服务被一些反病毒软件商的公共阻止列表所屏蔽。当前,服务使用的最高峰值约每月300 亿次请求,平均响应时间介于1 到20 毫秒。与其它一些服务不同, ipify 不做使用速率上的限制,同样也提供地理定位。

ipify 的客户端软件库以多种语言的形式提供

查看英文原文: Scaling the ipify Service on Heroku

2018-02-17 17:371251
用户头像

发布了 391 篇内容, 共 137.9 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

打卡智能中国(一):看守隧道的老人

脑极体

隧道 智能中国

2023年,你需要了解Zebec生态的几个开年利好

西柚子

滚动前行的轮子 — Flutter 交错动画应用实例

岛上码农

flutter ios 前端 安卓 跨平台开发

从理论到实践:MySQL性能优化和高可用架构,一次讲清

做梦都在改BUG

Java MySQL 数据库 性能优化

TiDB 中标杭州银行核心系统数据库项目

编程猫

建设经营指标体系,国央企需要什么样的指标平台?

Kyligence

指标中台

面试必问:说一下 Java 虚拟机的内存布局?

王磊

java面试

推进媒体深度融合:腾讯与上海文广集团达成战略合作,腾讯云、SMT成立联合实验室

科技热闻

亚马逊云科技核心服务之计算服务(Part1:Amazon EC2 星巴克为什么横向排队)

亚马逊云科技 (Amazon Web Services)

云原生 亚马逊云科技 Builder 专栏

大数据在互联网时代的意义!

镭速

Spring Cloud Alibaba 在 Proxyless Mesh 上的探索

阿里巴巴中间件

阿里云 S而vice Mesh Spring Cloud Aliababa

JVM 如何获取当前容器的资源限制?

阿里巴巴中间件

Java 阿里云 云原生 中间件

科技呵护女性健康,中国航天携手倍舒特成立“中国航天女性呵护研发中心”

科技大数据

大数据开发技术如何选择培训机构

小谷哥

微众银行 TiDB HTAP 和自动化运维实践

PingCAP

TiDB 自动化运维

数据库日常实操优质文章分享(含Oracle、MySQL等) | 2023年1月刊

墨天轮

数据库 oracle postgresql MySQL 运维 故障处理

参加大数据开发培训机构怎么样

小谷哥

java培训技术学习对学历有什么要求

小谷哥

一张图看懂CodeArts TestPlan 5大特性,带你玩转测试服务

华为云PaaS服务小智

小红书2023春节消费报告解读:大众消费意愿集中释放,表达和分享成为新经济消费诉求

易观分析

春节 小红书 消费

web前端培训班口碑比较好有哪些

小谷哥

盘点2022:开源热度居高,技术思考与经验分享是开发者的最爱

阿里巴巴中间件

阿里云 中间件

快速上手python的简单web框架flask

程序那些事

Python flask Web Web框架 程序那些事

Apipost全局变量和环境变量的使用

popo223344

测试 测试工具 测试开发

解析机器学习中的数据漂移问题

Baihai IDP

人工智能 机器学习 AI 机器学习模型 企业号 2 月 PK 榜

一文梳理 Code Review 方法论与实践总结

阿里巴巴中间件

阿里云 云原生 Code Review

MASA Stack 1.0 发布会讲稿——趋势篇

MASA技术团队

.net 云原生 dapr blazor MASA

百丈竿头,勠力同心丨九科信息CEO万正勇专访《数字助力赋能产业发展》在央视【中央新影-老故事】频道播出

九科Ninetech

写给go开发者的gRPC教程-通信模式

凉凉的知识库

golang 微服务 gRPC 服务治理

互联网医疗领域月度观察——互联网医院可线上开具新冠处方,互联网首诊“破冰”

易观分析

疫情 互联网医疗

成为海上霸总,全靠5G?

白洞计划

5G

在Heroku上扩展ipify服务_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章