<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                1、什么是session,什么是session一致性 什么是session? 服務器會為每個用戶創建一個會話,存儲用戶的相關信息,以便多次請求,能夠定位到同一個上下文中,在web開發中,web-server可用自動的為同一個瀏覽器的訪問用戶,自動創建session,提供數據存儲功能,最常見的會把用戶的登錄信息,用戶信息存儲在session中,以保持登錄狀態。 什么session一致性問題? 只要用戶不重啟瀏覽器,每次http短連接請求,理論上服務端都能定位到session,都能夠定位到同一臺web-server,以保持會話,這就是所謂的session一致性問題 2、解決session一致性問題,有哪些方案? 方案1: session同步法 思路: 站點集群session同步 ![](https://img.kancloud.cn/22/4e/224e709eb5d40840a7f023952cdcf267_561x377.png) 多個web-server之間相互同步session,這樣每個web-server之間都包含全部的session 優點: web-server的功能,應用程序不需要修改任何代碼 缺點: session同步需要數據傳輸,需要占大量的帶寬,每臺web-server需要維護的session會很多,數據量受內存限制,沒辦法進行水平擴展,當有多臺web-server,性能下降 方案2: 客戶端存儲法 思路: session存儲在客戶端 缺點: 每次http請求都需要攜帶session,非常占用外網的帶寬,數據存儲在端上,并在網絡上進行傳輸,存在泄密、篡改、竊取等安全隱患,存儲量的大小會受到端上cookie的限制 方案3: 反向代理hash一致性(四層、七層) 思路: 反向代理路由保障 ![](https://img.kancloud.cn/ae/3b/ae3bd1a6040712d9f6db7f9bf30f4570_1333x409.png) 四層: ip hash 七層: 根據某些head屬性,比如session_ip或用戶id做hash 優點: 只需要修改nginx的配置,不需要修改業務代碼,可用水平擴展 缺點: 如果web-server重啟,有部分用戶會受影響,需要重新登錄,如果webserver水平擴展,那么nginx會重新hash,session會重新分布,也會導致一部分用戶路由不到正確的session 方案4: 后端統一存儲法 思路: 不存儲在站點,統一存儲在后端(數據庫、緩存) 將session存儲在web-server后端的存儲層,數據庫或者緩存,如圖 ![](https://img.kancloud.cn/4c/a8/4ca866ad389069f98675fd469e8ec9b5_1000x466.png) 優點: 沒有安全隱患,session不用在外網上進行傳輸,可用實現web層的任意水平擴展 缺點: 增加了一次網絡調用,需要修改應用程序的代碼,需要應用代碼管理session 建議使用高可用的緩存(比如redis) 總結: 推薦使用方案4,使用緩存統一存儲session
                  <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>

                              哎呀哎呀视频在线观看