負載均衡之ip_hash

1. 什麼是ip_hash?

  • ip_hash是根據用戶請求過來的ip,然後映射成hash值,然後分配到一個特定的服務器裏面;
  • 使用ip_hash這種負載均衡以後,可以保證用戶的每一次會話都只會發送到同一臺特定的Tomcat裏面,它的session不會跨到其他的tomcat裏面去的;

2. hash算法原理

如圖所示:
在這裏插入圖片描述

  • 首先通過將ip地址映射成一個hash值,然後將hash值對Tomcat的數量3取模,得到Tomcat的索引0、1、2;
  • 比如:5%3=2,則把這個請求發送到Tomcat3服務器,以此類推;
  • 這樣一來,只要用戶的IP不發生改變,當前用戶的會話就能夠一直保持;
    在這裏插入圖片描述
    nginx的ip_hash算法是取ip地址的前三段數字進行hash映射,如果只有最後一段不一樣,也會發送到同一個Tomcat裏面

3. 如何在nginx裏面使用ip_hash?

如圖所示:
在這裏插入圖片描述
直接添加ip_hash關鍵字即可,後續同一ip的訪問將只會請求同一個服務器。

4. 注意事項

  • 一旦使用了ip_hash,當我們需要移除一臺服務器的時候,不能直接刪除這個配置項,而是需要在這臺服務器配置後面加上關鍵字down,表示不可用;
  • 因爲如果直接移除配置項,會導致hash算法發生更改,後續所有的請求都會發生混亂;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章