一個域名對應多個 IP
DNS 解析策略
基于 DNS 實現負載均衡的優缺點
字節二面:DNS 解析一個地址的時候會返回多個 IP 嗎?
答案是不會。
本題的考察點其實就是 DNS 負載均衡。
一個域名對應多個 IP
從理論上講,一個域名是可以對應多個 IP 的,在這種情況下,當不同的用戶訪問該域名時,就會訪問到不同的 IP 地址。
要實現一個域名對應多個 IP 地址的效果,只需要在 DNS 解析操作平臺,添加一條解析記錄,將網站的域名指向服務器的 IP 地址。一般情況下,一個域名對應一個 IP 地址,也就只需添加一條解析記錄即可。
如我們想要將 www.itmtx.cn 這個域名分別指向 1.1.1.1(北京電信)、2.2.2.2(上海移動)、3.3.3.3(深圳聯通)三個 IP。
那么我們就可以在 DNS 服務器中配置三個 A 記錄,分別為:
www.itmtx.cn IN A 114.100.20.201;
www.itmtx.cn IN A 114.100.20.202;
www.itmtx.cn IN A 114.100.20.203;
如果現在北京用戶訪問 itmtx.cn 這個域名,上海用戶也在訪問,兩個用戶雖然都訪問同一個域名,但訪問的 IP 地址并不相同,而是會根據 DNS 事先配置的「解析策略」將解析得到的那個 IP 地址返回給對應的訪客。
每次域名解析請求都會解析出一個不同的 IP 地址返回給訪客,這樣就構成了一個服務器集群,并實現負載均衡的效果。不同用戶就近訪問不同的服務器 IP 地址,訪問速度大大提升,同時也減輕了單個服務器的訪問壓力。同時,由于有多個備選 IP,當其中一個出現問題時,可以通過宕機切換,提高業務可用性。
基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://github.com/YunaiV/ruoyi-vue-pro
視頻教程:https://doc.iocoder.cn/video/
DNS 解析策略
常見的 DNS 解析策略包括:
輪詢(Round Robin):DNS 服務器按順序返回多個IP地址,實現請求的輪流分發到不同的服務器上。
權重(Weighted):為每個 IP 地址分配不同的權重,權重越高的服務器被選中的概率越大。
響應時間(Response Time):DNS 服務器可以通過測量服務器的響應時間來選擇最快的服務器,將域名解析為對應的 IP 地址。
各個 DNS 解析產品可能采用的解析策略不一樣,以 DNSPod 解析為例,它采用的就是權重 + 隨機的策略:
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://github.com/YunaiV/yudao-cloud
視頻教程:https://doc.iocoder.cn/video/
基于 DNS 實現負載均衡的優缺點
基于 DNS 實現負載均衡是十分簡單和有效的技術手段,它主要有以下幾點優勢:
將負載均衡工作交給 DNS,省去了網站管理維護負載均衡服務器的麻煩;
技術實現比較靈活,操作簡單,成本低,適用于大多數 TCP/IP 應用;
對于部署在服務器上的應用來說,不需要修改任何代碼就能實現不同機器上的應用訪問;
很多 DNS 系統還支持基于地理位置的域名解析,可以將域名解析成距離用戶地理位置最近的服務器地址,加快用戶訪問速度。
但基于 DNS 的負載均衡同樣也存在一些弊端:
目前的 DNS 系統是需要經過遞歸服務器、頂級服務器、權威服務器以及眾多緩存等多級解析的,在每一個環節都可能存在解析記錄緩存。如果服務器 IP 發生變動,即使修改了 A 記錄,也需要各級緩存失效后才能生效。而在解析生效前的這段時間,用戶可能就會根據緩存記錄訪問到已經被更換過的服務器上,從而導致訪問失敗。
為了本地 DNS 服務器能夠及時同步權威服務器上的最新記錄,所以一般將 DNS 緩存刷新時間設置得比較小,這就會導致 DNS 頻繁發起解析請求,從而造成額外的網絡問題。
DNS 本身并不具備主動監測服務器負載情況或動態調整權重的能力,不能區分不同服務器之間的性能和負載差異,不能反映服務器當前的運行狀態,所以一些大型網站總是使用 DNS 域名解析作為第一級負載均衡手段,然后再通過負載均衡服務器提供更高級的負載均衡算法(比如最少連接:將請求發送到擁有最少開放連接的服務器),從而完成最終請求。
-
服務器
+關注
關注
12文章
9231瀏覽量
85625 -
DNS
+關注
關注
0文章
218瀏覽量
19871 -
測量
+關注
關注
10文章
4885瀏覽量
111477
原文標題:DNS 解析一個地址的時候會返回多個 IP 嗎?
文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論