写点什么

在 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:371521
用户头像

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

关注

评论

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

鸿蒙开发实战之Wear Engine Kit打造智能手表学习伴侣

bianchengyishu

HarmonyOS NEXT

Windows下版本控制器(SVN)-启动服务器端程序

刘大猫

人工智能 svn 算法 版本控制 tortoiseSVN

同质化的GPU云市场,谁能逃离内卷?

脑极体

AI

大数据-18 Flume HelloWorld 实现Source Channel Sink 控制台流式收集

武子康

大数据 hadoop hive flume

HarmonyOS Development Practice: Network Kit 构建智慧教育网络平台

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Online Authentication Kit 构建教育可信身份体系

bianchengyishu

HarmonyOS NEXT

Web3 项目开发框架

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

出版社教学资源网的开发

北京木奇移动技术有限公司

软件外包公司 出版社 教学资源网

YashanDB数据库流量控制与防止雪崩效应方案

数据库砖家

YashanDB数据库权限管理与安全配置操作指南

数据库砖家

鸿蒙开发实战之Telephony Kit实现教育应用的智能通话管理

bianchengyishu

HarmonyOS NEXT

有了这个AI数字美食顾问,再也不愁今天吃什么

穿过生命散发芬芳

AI编程 Trae Trae Agent

HarmonyOS Development Practice: Pen Kit 构建智能笔写教学系统

bianchengyishu

HarmonyOS NEXT

鸿蒙开发日记之Sensor Service Kit实现智能护眼提醒

bianchengyishu

HarmonyOS NEXT

虚拟制作高刷新率LED屏幕:打造沉浸式影像

Dylan

LED LED display LED显示屏 虚拟制作 LED屏幕

YashanDB数据库日志分级管理与归档策略介绍

数据库砖家

HarmonyOS Development Practice: Performance Analysis Kit 构建教育应用性能监测体系

bianchengyishu

HarmonyOS NEXT

鸿蒙开发实战之Remote Communication Kit实现教育题库同步

bianchengyishu

HarmonyOS NEXT

鸿蒙开发实战之Test Kit保障教育应用质量

bianchengyishu

HarmonyOS NEXT

HarmonyOS开发实战之Universal Keystore Kit实现教育数据安全存储

bianchengyishu

HarmonyOS NEXT

YashanDB数据库权限管理最佳实践

数据库砖家

如何永久免费使用CrossOver?CrossOver 25 无限试用教程

阿拉灯神丁

MacBook Mac软件 M2芯片 crossover mac 破解版 Mac游戏推荐

区块链 Web3 项目的类型及特点

北京木奇移动技术有限公司

软件外包公司 web3开发 区块链开发公司

鸿蒙开发实战之Audio Kit打造智能英语听力训练系统

bianchengyishu

HarmonyOS NEXT

HarmonyOS开发实战之User Authentication Kit打造教育应用安全认证体系

bianchengyishu

HarmonyOS NEXT

世俱杯被“世界第一”霸屏!海信激光显示定义全球百吋电视产业新坐标

新消费日报

HarmonyOS开发实战之Status Bar Extension Kit实现学习状态实时提醒

bianchengyishu

HarmonyOS NEXT

YashanDB数据库架构详解及部署流程指导

数据库砖家

YashanDB数据库日志分析技巧,助力企业快速定位问题

数据库砖家

HarmonyOS Development Practice: NearLink Kit 构建教育近场交互系统

bianchengyishu

HarmonyOS NEXT

HarmonyOS开发笔记之Service Collaboration Kit实现智能学习小组功能

bianchengyishu

HarmonyOS NEXT

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