精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

GitHub新負載均衡系統的設計歷程

責任編輯:editor004

作者:Sergio De Simone

2016-10-09 11:42:57

摘自:INFOQ

GitHub工程師考慮使用L4 L7分離策略,將負載均衡節點分為兩層,L4和L7,OSI層據此來提供各個節點分發請求時需要的信息。

在過去的一年中,GitHub一直在開發一個新的負載均衡系統——GitHub Load Balancer(GLB)。這個系統想要通過擴展使用普通的硬件來應對每天數十億的連接。GitHub工程師Joe Williams和Theo Julienne講解了GLB的設計歷程。

GitHub根本的設計目標之一是希望能“擴展”IP,即,將單個公網IP的數據流量通過多個等價的連接分發到不同的目標機器。這通常是通過等價多路徑路由(ECMP)來實現的,從而擴大帶寬。然而,ECMP在各個ECMP節點發生變化,比如在節點失效或因維護需求而被移除時,表現不是很好。對GitHub來說這是使用ECMP最大的缺陷。

因此,GitHub工程師考慮使用L4/L7分離策略,將負載均衡節點分為兩層,L4和L7,OSI層據此來提供各個節點分發請求時需要的信息。L4使用來源及目標IP地址和TCP端口號進行路由,而L7使用應用層信息來路由,這通常使用HTTP協議。在L4/L7分離的設計中,L4節點通過ECMP拆分流量到L7節點,我們稱前者為“director”節點,后者為“proxy”節點。Williams和Julienne解釋到,通常ipvs/LVS被應用于L4節點,而L7節點使用haproxy或類似工具。

L4/L7分離帶來最大的好處是,只要簡單地將L7節點從服務新連接的節點池中移除,并服務到節點上現有連接全部結束,就可以在不影響正常運行的情況下移除一個L7節點。但另一方面,在L4節點失效或被移除時會導致訪問中斷。由于git無法進行重試或恢復已斷開的連接,解決這個問題對GitHub來說尤為關鍵。

GitHub通過使用Rendezvous哈希算法解決了這個最終問題,這個算法使director節點間協定應該由哪個proxy節點來處理某個請求。GLB結合使用Rendezvous哈希算法與服務器直接返回模式,后者使返回報文直接從proxy節點返回給客戶端,從而繞過了原來分配請求到proxy的director節點。在GLB中,使用Rendezvous哈希的基本思想是要將請求轉發表在各個director節點間共享并保持同步。這大體上能保證即使一個director節點失效或被移除,其他director節點可以代替并將現存連接分配到正確的proxy節點。

最后Williams和Julienne談到他們計劃如何平滑地發布這個新負載均衡系統,并預計在近期開源該項目。

查看英文原文:How GitHub Designed its New Load Balancer

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 信丰县| 清流县| 永安市| 德兴市| 和田县| 新巴尔虎右旗| 东莞市| 资溪县| 陵川县| 碌曲县| 香格里拉县| 西宁市| 永丰县| 高清| 荥经县| 高清| 沁水县| 南漳县| 刚察县| 玉龙| 长岭县| 确山县| 台江县| 江孜县| 盐津县| 小金县| 天祝| 武山县| 商河县| 灵丘县| 商洛市| 民权县| 黎城县| 乐山市| 濉溪县| 米易县| 广河县| 玛多县| 克拉玛依市| 满城县| 彰化县|