簡體   English   中英

負載均衡服務器,我該如何實現呢?

[英]Load balancing server, how can I implement it?

我用谷歌搜索負載平衡,但我唯一能找到的是工作理論,目前,這對我來說是“容易”的部分。 但是如何實現一個的零例子。

我有幾個與負載平衡有關的問題:

  1. 我有一個域(example.com),我背后有一個負載均衡服務器(讓我們稱之為A ),根據理論,它將要求客戶端關閉與A的連接,並連接到B,一個子-server並用B繼續請求。客戶端,在Web瀏覽器中停止在地址欄中看到“example.com/page.html”並開始看到“B_ip_address / page.html”嗎?

  2. 如何從頭開始實現簡單的負載均衡器? 我懷疑的目標是HTTP部分。 我需要發送一些特定的消息或消息集來發送客戶端,這會使他與我斷開連接並連接到子服務器嗎?

  3. 那些比HTTP更低級別的協議,比如TCP / IP,是否有任何標准數據包告訴客戶端他剛剛連接到負載均衡器服務器,現在他需要連接到xxx.xxx.xxx.xxx來進行請求?

  4. 最常用的方法是什么? (1)客戶端連接到負載均衡服務器,它要求客戶端直接連接到其中一個子服務器,或者(2)負載均衡服務器開始橋接從客戶端到子服務器的所有流量,反之亦然以透明的方式?

因此問題2,3和4是負載平衡協議,第一個是域名可以連接到負載均衡器的方式,以及潛在的后果。

通過將調用重定向到另一台服務器,您的方法是一種靜態負載平衡。 以下所有呼叫都可以使用此其他服務器,或者再次發送到負載均衡器以進行重定向。

實現取決於系統的實現。 負載均衡器最適用於沒有會話狀態的獨立請求。 您需要在“結束”服務器之間同步會話狀態。 或使用共享會話存儲為所有服務器提供會話狀態。

存在一種簡單透明的HTTP服務器負載平衡解決方案。 您可以使用nginx服務器的負載平衡模塊( http://nginx.org/en/docs/http/load_balancing.html )。 這可用於HTTP和HTTPS請求。 如果負載增加,它可以動態擴展額外的服務器。 您需要編輯nginx配置並重新啟動服務器。 這對現有連接是透明的。 並且nginx不會導致更改域名或主機名的問題。

其他協議需要客戶端和服務器的一些支持。 如果專用設備位於客戶端和服務器之間,則負載平衡可能是透明的。 或者通信協議需要支持連接重定向。

編輯:負載均衡也可以通過DNS循環實現。 每個DNS查找調用都返回同一域名的另一個IP地址。 客戶端選擇IP並連接到此服務器。 另一個客戶端可以使用下一個IP。 地址欄名稱始終相同。

例:

Non-authoritative answer:
Name:    www.google.com
Addresses:  2a00:1450:4001:80f::1010
      173.194.116.209
      173.194.116.210
      173.194.116.212
      173.194.116.211
      173.194.116.208

Non-authoritative answer:
Name:    www.google.com
Addresses:  2a00:1450:4001:80f::1010
      173.194.116.210
      173.194.116.212
      173.194.116.211
      173.194.116.208
      173.194.116.209

Non-authoritative answer:
Name:    www.google.com
Addresses:  2a00:1450:4001:80f::1010
      173.194.116.212
      173.194.116.211
      173.194.116.208
      173.194.116.209
      173.194.116.210

IP地址范圍旋轉。 大多數HTTP負載均衡器都像nginx或其他反向代理實現一樣工作為透明負載均衡器。 我認為重定向負載均衡器更像是一種低技術實現。

TCP / IP不是協議。 它是用於傳輸實現特定通信協議的數據的傳輸層。 而TCP / IP本身是網絡組件的協議。 但不是應用程序。 您可以查看https://en.wikipedia.org/wiki/OSI_model

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM