中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Springboot+Nginx怎么做負載均衡

發布時間:2021-07-22 15:23:03 來源:億速云 閱讀:416 作者:chen 欄目:大數據

本篇內容主要講解“Springboot+Nginx怎么做負載均衡”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Springboot+Nginx怎么做負載均衡”吧!

負載均衡介紹

wiki

百度百科

簡單來說就是提升吞吐量、避免服務器過載。分為(如 F5),(如 apache、nginx 的反向代理,還有其他模式)

Nginx 負載均衡網絡圖

Springboot+Nginx怎么做負載均衡

Nginx 負載均衡策略

nginx 負載均衡使用 upstream 配置. 包括內置策略,還有通過第三方插件方式的策略。有興趣的可以深入學習。

輪循(默認)[Round Robin]

每個請求按時間順序逐一分配到不同的后端服務器,如果服務器shutdown 了,將不在分發請求到該服務器。

  • servername 自定義名稱

  • server 配置支持 ip/域名 + 有端口/無端口(80) 。內容根據實際配置

  • 可配置 n 個 server

upstream servername {
    server 192.168.0.1:8080;
    server 192.168.0.2:8080; 
}
指定權重 [Least Connections]

通過權重,指定輪循的幾率。weight和訪問比率成正比,多用于服務器性能有差異的情況。

  • servername 自定義名稱

  • server 配置支持 ip/域名 + 有端口/無端口(80) 。內容根據實際配置

  • weight 與訪問量成正比,數字越大輪循幾率越大

  • 可配置 n 個 server

upstream servername { 
    server 192.168.0.1:8080 weight=8; 
    server 192.168.0.2:8080 weight=10; 
}
IP 綁定[IP Hash]

每個請求按根據客戶端ip的hash結果分配服務器。這樣可以客戶端在一定時間內可以固定訪問一臺服務器,可以保持 Session 。 默認執行 20(忘記了)hash 算法查找服務器,如果沒有則進行輪循(算是一種高級的輪循)。

  • servername 自定義名稱

  • server 配置支持 ip/域名 + 有端口/無端口(80) 。內容根據實際配置

  • 可配置 n 個 server

upstream servername { 
    ip_hash; 
    server 192.168.0.1:8080; 
    server 192.168.0.2:8080; 
}
Server 參數
  • down 表示當前server 不參與負載

  • weight 默認為1 數字越大 負載權重越大

  • max_fails 允許請求失敗的次數 當超過最大次數 返回proxy_next_upstream模塊定義的錯誤

  • fail_timeout:max_fails次失敗后,服務端暫停的時間

  • backup: 其他所有的非backup機器down或者忙的時候 請求這臺機器,這臺機器的壓力最小

upstream servername { 
    server 192.168.0.1:8080 down; 
    server 192.168.0.2:8080 weight=10 max_fails=30 fail_timeout=12; 
    server 192.168.0.3:8080 weight=8; 
    server 192.168.0.4:8080 backup; 
}

Nginx+Springboot 實現負載均衡

環境
  • JDK1.8 以以上

  • Nginx 1.15 以上

測試包: https://github.com/liuqi0725/springboot-useful/tree/master/springboot-soft-balance-nginx

測試包使用
  • 下載測試包 建議使用GitZip for github 插件下載獨立目錄

  • 執行 cleanpackage 操作,將打包的 jar 和 application.yaml 放在一起

  • 修改 application.yaml 端口地址.

  • 啟動多個服務

  • 啟動后在不同的客戶端機器上訪問 http://localhost/hello/username username 自定義 。測試負載均衡

nginx Session 共享

使用反向代理負載均衡,不可避免會面對 Session 共享。一般的方式是 cookie、memcache、redis 來管理共享數據. 后面的 Springboot-security 專題,會專門講解。

nginx 配置

配置采用的 ip_hash 。可以替換成其他的策略測試。

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream springbootnginx{
       ip_hash;
       # 其實 2 個可以都在放本地,修改端口即可
       # 本地放一個
       server 192.168.1.130:8080;
       # 其他機器放一個
       server 192.168.1.120:8080;
    }

    server {
        listen       80;
        server_name  192.168.1.130;

        location / {
            root   html;
            # 指向反向代理
            proxy_pass http://springbootnginx;
            proxy_connect_timeout 3s;
            proxy_read_timeout 5s;
            proxy_send_timeout 3s;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

到此,相信大家對“Springboot+Nginx怎么做負載均衡”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兖州市| 旅游| 汉中市| 凌源市| 丹东市| 利津县| 珲春市| 石狮市| 新民市| 勐海县| 驻马店市| 宽城| 治县。| 大关县| 南汇区| 牟定县| 乌苏市| 开封市| 百色市| 德江县| 中宁县| 霍州市| 梁山县| 三穗县| 修文县| 尖扎县| 吐鲁番市| 香格里拉县| 卓资县| 北票市| 安远县| 抚顺县| 长阳| 得荣县| 明光市| 霞浦县| 西盟| 安阳县| 台安县| 大英县| 四会市|