<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 源地址哈希Hash算法 源地址哈希的思想是獲取客戶端訪問的 IP 地址值,通過哈希函數計算得到一個數值,用該數值對服務器列表的大小進行取模運算,得到的結果邊是要訪問的服務器的序號。采用哈希法進行負載均衡,同一 IP 地址的客戶端,當后端服務器列表不變時,它每次都會映射到同一臺后端服務器進行訪問 ``` public class RandomTest { static List<String> list = Arrays.asList("192.168.0.101", "192.168.0.102", "192.168.0.103", "192.168.0.104"); public static void main(String[] args) throws InterruptedException { while (true) { System.err.println(get("10.168.0.101")); TimeUnit.SECONDS.sleep(1); } } private static synchronized String get(String ip) { // 拷貝服務列表避免出現由于服務器上線和下線導致的并發問題 List<String> result = new ArrayList<>(); result.addAll(list); int hashCode = System.identityHashCode(ip); int size = result.size(); int index = hashCode % size; return result.get(index); } } ``` 通過參數傳入的客戶端 remoteip 參數,取得它的哈希值,對服務器列表的大小取模,結果便是選用的服務器在服務器列表中的索引值。該算法保證了相同的客戶端 IP 地址將會被“哈希”到同一臺后端服務器,直到后端服務器列表變更。根據此特性可以在服務消費者與服務提供者之間建立有狀態的 session 會話 hash算法中,存在以下的幾個問題 1.當一臺服務器宕機了或者新添加一臺機器之后,這個時候hashCode % servers.size\(\)需要重新計算hash值, 如果在緩存的環境中,所有的請求都會涌向數據庫服務器,給數據庫服務器帶來巨大的壓力,可能導致整個系統不可用,形成雪崩效應; 2 .當新增了一臺性能強的機器后,利用上述的hash算法無法讓,新增的性能強的服務器多承擔壓力; 基于上面的幾個問題,提出了hash算法的改進:一致性hash算法
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看