写点什么

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

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

关注

评论

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

健康产业怎么定义?需要用到堡垒机吗?

行云管家

网络安全 数据安全 堡垒机 健康产业

IP纯净度对跨境电商有哪些影响

IPIDEA全球HTTP

Introducing the DR40X9: A High-Performance Wireless Communication Device

wallyslilly

IPQ4019 ipq4029

截图和屏幕录制工具CleanShot X for mac

Mac相关知识分享

录屏软件

从数据洞察到智能决策:合合信息&infiniflow RAG技术的实战案例分享

汀丶人工智能

rag

公开课 | 金九银十,测试开发面试秘籍大公开!

测吧(北京)科技有限公司

测试

《黑神话:悟空》下的科技众生相

脑极体

AI

什么是APT攻击,如何处理

德迅云安全杨德俊

StarRocks 培训课程重磅上线!专家出品,助你升级打怪不走弯路!

StarRocks

Invicti v24.9.0 发布下载,新增功能概览

sysin

invicti

Parallels Desktop 20 发布下载,macOS Sequoia 和 Windows 11 24H2 支持准备就绪

sysin

macos Parallels Desktop

Mac 系统清理与优化软件CleanMyMac X for mac

Mac相关知识分享

系统优化

Qt使用kingbase数据库存储数据(完成考勤系统数据增删改查)

DS小龙哥

9月日更

Cisco Catalyst 9100 无线接入点 IOS XE 17.15.1 发布下载,新增功能概览

sysin

Cisco ap 思科 IOS XE 9100

化“腐朽”为“神奇”:5 种 RAG 优化技术应对千奇百怪的 Query

Baihai IDP

程序员 AI rag Baihai IDP 企业 9 月 PK 榜

亚信安慧AntDB-M 只读事务提交优化

亚信AntDB数据库

AntDB

PDF自动化批处理工具PDF Checkpoint for mac

Mac相关知识分享

PDF

防城港等保测评机构有哪些?在哪里?

行云管家

等保 等级保护 防城港

报名啦|PolarDB数据库创新设计赛(天池杯)等你来战

阿里云数据库开源

数据库大赛 国赛 阿里云PolarDB

Spring webflux注解:提供全面的JPA注解应用案例(必须收藏)

肖哥弹架构

spring spring webflux

Cisco Modeling Labs (CML) 2.7.2 发布下载,新增功能概览

sysin

Cisco CML

Java 中堆内存和栈内存上的数据分布和特点

emanjusaka

Java stack heap

TCL电视投屏软件Mirror for TCL TV Mac版

Mac相关知识分享

投屏软件

直播预约丨《袋鼠云大数据实操指南》No.6:建设指标管理平台 解锁企业数据价值

袋鼠云数栈

大数据

人事管理这些“坑”,你有没有踩过?

天津汇柏科技有限公司

人工智能 低代码开发 人事管理系统

性能测试 | JMeter 介绍与安装

测试人

软件测试

性能测试 | JMeter 介绍与安装

测吧(北京)科技有限公司

测试

电脑越用越慢,有什么好的解决方案?

上海锐起科技

nodejs中路径相关api

秃头小帅oi

曝字节 AI 硬件团队首款自研产品为智能耳机,与豆包联动;OpenAI 神秘新模型或将在两周内发布丨 RTE 开发者日报

声网

数据飞轮转进快递行业 能够为企业带来哪些新想象

字节跳动数据平台

数字化转型 云服务 数据平台 火山引擎 数据飞轮

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