\u0026#xd;\n\u0026#xd;\n\u0026#xd;\n\u0026#xd;\n
ipify的建立者是randall degges,最初意在解決他在乙個專案開發中的需求。第一版是使用node.js編寫的,並部署在heroku上。該服務可用使用curl等工具訪問,也可程式設計使用。服務**是乙個簡單的前端,使用amazon s3儲存桶,部署在cloudfront後端上。heroku提供的服務單元稱為「dyno」,最小服務單元為512 mb記憶體和單個cpu。dyno的維護代價低,是一種可選方案。dyno在程序故障時會自動重啟,並且前端部署了負載均衡器。最小服務單元的費用為每月約7美元。heroku宿主在aws上,由此可使用aws提供的可靠性。
\u0026#xd;\n\u0026#xd;\n
ipify已得到了廣泛的使用,面臨著可擴充套件性上的問題。雖然可以通過新增更多的硬體解決該問題,但是一些調查顯示,通量僅為每秒10次請求。服務曾採用node.js的cluster模組做了改進,實現載入多個程序以更好地利用多核系統。但是這一改進並不足以處理不斷增長的服務流量。服務進而使用go做了重寫。出於效能上的考慮,重寫時在眾多方案中選用了由go提供的httprouter軟體包。重寫使服務效能得到了顯著的改善,占用記憶體更少(僅約5 mb),並可在單dyno部署上達到每秒處理超過2000次請求。此外,在字串處理上的改進,進一步提高了服務的效能,使得每秒處理的請求數增加了1000次。服務的重寫也降低了代價,ipify的執行僅需單dyno部署即可。宿主在aws上的ipinfo.io等類似服務,也面對同樣的可擴充套件性問題。由於一種解決方案是使用付費更高的服務,因此可擴充套件性問題會轉化為需要付出更高的代價。
\u0026#xd;\n\u0026#xd;\n
ipify現在不僅被一些軟體開發人員正常使用,也被一些惡意軟體編寫人員利用。這導致了大量的突發峰值流量,也導致該服務被一些反病毒軟體商的公共阻止列表所遮蔽。當前,服務使用的最高峰值約每月300億次請求,平均響應時間介於1到20毫秒。與其它一些服務不同,ipify不做使用速率上的限制,同樣也提供地理定位。
\u0026#xd;\n\u0026#xd;\n
ipify的客戶端軟體庫以多種語言的形式提供。
\u0026#xd;\n\u0026#xd;\n
檢視英文原文:scaling the ipify service on heroku
在Heroku上擴充套件ipify服務
ipify的建立者是randall degges,最初意在解決他在乙個專案開發中的需求。第一版是使用node.js編寫的,並部署在heroku上。該服務可用使用curl等工具訪問,也可程式設計使用。服務 是乙個簡單的前端,使用amazon s3儲存桶,部署在cloudfront後端上。heroku提...
在Heroku上擴充套件ipify服務
ipify的建立者是randall degges,最初意在解決他在乙個專案開發中的需求。第一版是使用node.js編寫的,並部署在heroku上。該服務可用使用curl等工具訪問,也可程式設計使用。服務 是乙個簡單的前端,使用amazon s3儲存桶,部署在cloudfront後端上。heroku提...
在Heroku上擴充套件ipify服務
ipify的建立者是randall degges,最初意在解決他在乙個專案開發中的需求。第一版是使用node.js編寫的,並部署在heroku上。該服務可用使用curl等工具訪問,也可程式設計使用。服務 是乙個簡單的前端,使用amazon s3儲存桶,部署在cloudfront後端上。heroku提...