写点什么

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

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

关注

评论

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

VMware Tools 12.5.3 发布 - 客户机操作系统无缝交互必备组件

sysin

vmware

行业分享丨从装载机到电动车,多学科求解器平台如何拓展仿真边界

Altair RapidMiner

AI 汽车 仿真 CAE EDEM

上线!《指标 + AI 数智应用白皮书》解读:从数据地基到行业落地,袋鼠云揭秘数智化经营实践路径

袋鼠云数栈

AI 指标 指标管理 数智化 数智化转型

用一套陪玩系统小程序源码,开启你的游戏陪玩平台创业之路

DUOKE七七

uni-app vue2 MySQL 数据库

技术干货丨基于SimLab的耳机充电底座的多角度跌落分析

Altair RapidMiner

仿真 CAE Simlab 跌落仿真 电子消费品

MCP Server 之旅第 5 站:服务鉴权体系解密

阿里巴巴云原生

阿里云 Serverless 云原生 MCP

Cyble连续第二年被评为样本供应商

财见

Alfred 5 for Mac(苹果效率提升工具)

Geek贝

数据分析与AI丨从传感器到智能决策:数据驱动企业发展与 ESG 创新的全链路实践

Altair RapidMiner

人工智能 AI 数字孪生 仿真 FEKO

隐藏Bash历史记录:实用技巧与最佳方法

qife122

Linux 安全

阿里云 RabbitMQ 可观测性最佳实践

观测云

RabbitMQ

使用 SeaTunnel 建立从 MySQL 到 Databend 的数据同步管道

Databend

VMware Fusion 13.6.4 for Mac - 领先的免费桌面虚拟化软件

sysin

fusion

VMware Tools 13.0.1.0 发布 - 客户机操作系统无缝交互必备组件

sysin

vmware

Apache RocketMQ + “太乙” = 开源贡献新体验

阿里巴巴云原生

阿里云 云原生 Apache RocketMQ

产品更新丨谷云科技 iPaaS 集成平台 V7.6 版本发布

谷云科技RestCloud

API网关 产品更新 集成平台 ipaas

7月17日 2025可信数据库发展大会 邀您共探GenAI时代对数据库的挑战与需求

MatrixOrigin

Vue3响应式编程三剑客:计算属性、方法与侦听器深度实战指南

量贩潮汐·WholesaleTide

Vue 前端

枫清科技参编的《人工智能知识工程指南(1.0)》发布

Fabarta

人工智能

成为服务台经理需要哪些技能?-ManageEngine卓豪

ServiceDesk_Plus

IT服务管理

面试官:如何实现企业级MCP分布式部署?

王磊

资源利用率提升50%:Serverless 驱动国诚投顾打造智能投顾新范式

阿里巴巴云原生

阿里云 Serverless 云原生

Nacos 开源 MCP Router,加速 MCP 私有化部署

阿里巴巴云原生

阿里云 云原生 nacos MCP

埋点采集之曝光

神策技术社区

埋点 曝光埋点 大数据分析

酷开携AI智能体亮相ATC,重塑人车交互新范式

业界

开发者说|Aux-Think:为什么测试时推理反而让机器人「误入歧途」?

地平线开发者

自动驾驶 算法工具链 地平线征程6

Mistral 开源首个音频模型 Voxtral:转录+音频理解;语音转写工具 Willow 筹资 420 万美元丨日报

RTE开发者社区

线上活动丨AI 语音客服:最先跑通的 Voice Agent 场景,在面临什么真问题?丨 RTE Meetup

RTE开发者社区

VMware Workstation 17.6.4 Pro for Windows & Linux - 领先的免费桌面虚拟化软件

sysin

Workstation

BetterYeah AI完成超亿元B轮融资,阿里云领投加码企业级智能体研发

BetterYeah AI

企业agent

MCP如何赋能一线理财经理在 AI 时代赢得客户的深层信赖

盈米AI开放平台

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