乾貨 | 獨創分散式網路負載均衡最佳實踐
一、概述
在高可用場景中,後端伺服器叢集之前通常會部署負載均衡器,負載均衡器作為訪問流量的統一入口,會將使用者的訪問流量按照一定的策略自主分發給多臺後端伺服器,從而調整資源利用情況,消除由於單臺後端伺服器故障對系統的影響,提高系統可用性、擴充套件系統服務能力。
京東雲獨創分散式網路負載均衡(Distributed Network Load Balancer,簡稱DNLB),
是一款基於京東雲成熟健全的SDN技術實現的無狀態四層負載均衡,提供軟體定義的全可用區分散式負載均衡服務。
DNLB
不單獨佔用計算資源
天然具有轉發效能無瓶頸
全可用區高可用
低時延和長期免費的優點
滿足客戶“三高一低”的服務場景需求
【高效能】
【高可用】
【高彈性】
【低延時】
本文以DNLB的高可用場景為例介紹其部署的最佳實踐,使用到的京東雲產品包括 雲主機、DNLB、高可用組、私有網路及安全組。
二、場景需求
-
負載均衡服務需採用多可用區部署,提供可用區級別的高可用。
-
後端服務可根據流量負載情況自動調整後端伺服器個數,以實現合理利用資源,並提供服- 務器跨AZ、跨機架的高可用。
-
後端伺服器繫結安全組,提供例項級別的安全防護。
-
後端伺服器需獲取客戶端的源IP,基於源IP地址統計使用者訪問量。
產品配置列表
三、配置步驟
私有網路
步驟1:建立私有網路
私有網路(Virtual Private Cloud,簡稱VPC),是您在京東公有云上自定義的邏輯隔離的網路空間,與您在資料中心搭建的傳統網路類似,此私有網路空間由使用者完全掌控,支援自定義網段劃分、路由策略等。
建立DNLB和後端伺服器所屬的VPC。DNLB採用VPC內部署,可透過繫結彈性公網IP對外提供服務,隱藏內部結構,增強系統安全性。
步驟2:建立子網
子網是所屬VPC IP地址範圍內的 IP 地址塊。目前私有網路中的部分雲資源部署在子網內,如雲主機、負載均衡等。不同VPC的子網 CIDR可以重疊,同一個VPC下的子網CIDR不可以重疊。
為提供子網級的安全性,部署後端服務例項屬於單獨的私有子網lb-subnet1,DNLB屬於公有子網lb-subnet2。
安全組
安全組是一種分散式的、有狀態的包過濾虛擬防火牆,可實現對例項的網路訪問控制,從而控制一臺或多臺例項的訪問流量。
修改私有網路dnlb-test-vpc的安全組“Linux安全組開放22埠”中的規則:
-
入站規則放行目的埠為22、80的流量;
-
出站規則放行所有流量。
例項模板
步驟1:建立私有映象
私有映象是基於您的自有例項建立自定義映象,您可以為已部署業務的例項製作映象,基於此映象快速建立多個具有相同配置和軟體環境的例項。您可以將私有映象共享給同其他京東雲使用者,被共享映象會顯示在目標使用者同區域的共享映象列表中。
本舉例中基於部署Nginx WEB服務的雲主機建立私有映象,並部署 GoAccess用來統計源端使用者的訪問情況,高可用組彈性擴充套件時使用該映象建立雲主機例項。
步驟2:建立例項模板
高可用組
高可用組(Availability Group,簡稱AG)是京東雲提供的業務高可用部署解決方案,是計算資源邏輯集合。提供了組內單元在資料中心內橫跨多個故障域(Fault Domain,簡稱FD)均衡部署的機制,示例分散部署在相互隔離的物理資源上,當出現硬體故障或定時維護時只會影響部分例項,您的業務仍為可用狀態。故障域間故障隔離,最大程度規避了區域性故障對高可用應用整體的影響:
1、基於例項模板建立高可用組;
2、開啟高可用組的自動伸縮功能,設定組內最大例項個數、最小例項個數及移除策略;
3、新增告警策略,基於監控指標實現後端伺服器的彈性伸縮。
分散式網路負載均衡
步驟一:建立DNLB例項
DNLB例項必須與後端伺服器組屬於同一個地域下的同一個私有網路;
DNLB例項預設全可用區分散式部署,不需要使用者額外配置。
步驟二:建立監聽器
監聽器用來透過協議和埠號監聽需要進行負載均衡的請求。
步驟三:建立後端服務
後端服務用來定義訪問流量自DNLB轉發到後端伺服器的轉發協議、埠和排程演算法。DNLB預設透傳客戶端源IP地址,不需要使用者在DNLB和後端伺服器上額外配置,滿足使用者溯源或基於源IP統計需求。
步驟四:建立健康檢查
DNLB透過健康檢查定時檢測後端伺服器的執行狀況,可自定義檢測頻率、健康/不健康判斷條件。開啟健康檢查後,當後端伺服器執行異常時,DNLB將停止向其分發流量,且將流量分發給其他執行正常的後端伺服器,異常後端伺服器恢復正常後,DNLB再繼續向其分發流量。
當繫結的後端服務為高可用組時,如不配置健康檢查的埠,預設為後端服務上配置的埠。
步驟五:新增伺服器組
新增高可用組作為後端伺服器組提供服務。高可用組內的例項將根據負載情況按照設定的彈縮策略,自動增加或減少。
驗證服務訪問情況
(1)在瀏覽器中輸入DNLB的公網IP,請求預設使用80埠,驗證服務可以正常訪問。
(2)DNLB可透傳客戶端源IP,不需後端伺服器做任何額外配置。透過視覺化工具 GoAccess可統計不同源IP的訪問情況。
歡迎點選“ 京東雲 ”瞭解更多精彩內容
*點選“ 閱讀原文 ”
瞭解更多京東雲分散式網路負載均衡產品資訊 *
想要了解更多高併發解決方案,除我們的負載均衡產品,
還可報名參加 5月26日(週日)在上海舉辦的“京東雲技術沙龍”
從京東在零售業和社交電商方面的核心技術以及在“618”、“雙11”大促時的成功解決方案出發,帶你探索新零售時代的數字化創新
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2644530/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從網路到分散式-負載均衡分散式負載
- 4.10 負載均衡分散式負載分散式
- 搞懂分散式技術9:Nginx負載均衡原理與實踐分散式Nginx負載
- 載均衡技術全解析:Pulsar 分散式系統的最佳實踐分散式
- 奈學乾貨分享:分散式CAP實踐分析分散式
- 分散式系統關注點——如何去實施「負載均衡」?分散式負載
- RocketMQ 客戶端負載均衡機制詳解及最佳實踐MQ客戶端負載
- 最佳實踐:負載均衡SLB支援自定義VPC例項IP地址負載
- 簡單實踐搭建 nginx 負載均衡Nginx負載
- 分散式架構篇 | OceanBase負載均衡的魅力分散式架構負載
- 技術分享| Etcd如何實現分散式負載均衡及分散式通知與協調分散式負載
- 前端乾貨之JS最佳實踐前端JS
- Kafka 負載均衡在 vivo 的落地實踐Kafka負載
- 【乾貨】分庫分表最佳實踐
- JMeter分散式壓測/JMeter負載新增/jmeter負載均衡/jmeter Windows系統壓測負載新增JMeter分散式負載Windows
- [分散式][高併發]負載均衡方案和演算法分散式負載演算法
- 叢集、負載均衡、分散式的區別與聯絡負載分散式
- kubernetes實踐之十三: 負載均衡機制Ingress負載
- 乾貨 | 京東雲部署Wordpress最佳實踐
- kubernetes實踐之四十六:分散式負載測試Locust分散式負載
- 流量引導:網路世界的負載均衡解密負載解密
- Pulsar負載均衡原理及最佳化負載
- ECS進階Day03:SLB負載均衡實踐負載
- GRPC 負載均衡實現RPC負載
- Ribbon實現負載均衡負載
- nginx實現負載均衡Nginx負載
- LVS負載均衡群集概念、NAT模式LVS負載均衡實戰部署負載模式
- Spring Security 實戰乾貨:分散式物件SharedObjectSpring分散式物件Object
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- 分散式鎖實現原理與最佳實踐分散式
- 負載均衡在分散式架構中是怎麼玩起來的?負載分散式架構
- 負載均衡負載
- 基於開源Tars的動態負載均衡實踐負載
- Dubbo 路由及負載均衡效能最佳化路由負載
- HaProxy 實現 MySQL 負載均衡MySql負載
- 乾貨 | 京東雲賬號安全管理最佳實踐
- [原始碼解析] 並行分散式任務佇列 Celery 之 負載均衡原始碼並行分散式佇列負載