服務器集羣

搭建服務器集羣

集羣

服務器集羣,是經過多個服務器共同處理負荷,實現負載均衡分擔壓力的一種措施.但是隨之而來也有一些問題:根據用戶的反向代理的調用.用戶不清楚本身到底訪問的是哪臺服務器.那麼應該如何測試負載均衡呢???java

咱們能夠經過1個url請求獲取訪問服務器端口號便可.nginx

如今項目中application.yml文件中修改端口爲8081,再經過@value動態賦值爲屬性,代碼以下:瀏覽器

@RestController
public class PortController {
    /**
     * 經過Spring容器動態獲取YML配置文件中的端口便可
     */
    @Value("${server.port}")
    private int port;

    @RequestMapping("/getPort")
    public String getPort(){

        return "當前訪問的端口號爲:"+port;
    }
}

這樣當咱們訪問項目的getPort映射時就會顯示對應服務器的端口號,能夠依據此端口號來進行測試.tomcat

搭建tomcat服務器集羣

咱們將項目系統打成3個war包程序. 端口號分別爲8081/8082/8083,以後經過java命令(java -jar 808X.war)啓動3個cmd窗口也就是3臺服務器.服務器

項目打包:
先修改端口號以後,將maven進行clean/install打包操做.app

經過java -jar 808X.war將項目發佈後而後依次在瀏覽器進行訪問測試.負載均衡

Nginx集羣配置

集羣配置

咱們如今須要經過manage.com的方式訪問服務器時,要求經過反向代理的方式實現.要求配置nginx中集羣.maven

#配置後臺管理系統
    server {
        listen 80;
        server_name manage.jt.com;

        location / {
            #root 表明文件目錄
            #index 表明默認的訪問頁面
            #proxy_pass 表明發起url請求
            proxy_pass http://jtW;
        }
    }

    #配置集羣的關鍵字   經過集羣配置tomcat服務器便可
    #默認: 1.輪詢的機制
    upstream jtW {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
    }

負載均衡策略說明

  1. 輪詢策略:

根據配置文件的順序,以後依次訪問服務器. 該策略也是默認的機制.測試

#默認: 1.輪詢的機制
    upstream jtW {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
    }
  1. 權重策略--weight:

公司採購服務器都是有時間間隔的. 可是因爲服務器新舊不一樣,硬件版本不一樣,致使服務器處理能力不一樣.
若是上述的問題不作處理,依然採用輪詢的機制,則會出現嚴重的負載不均衡的現象.
因此須要經過權重的方式平衡壓力,weight值越大.url

#配置集羣的關鍵字   經過集羣配置tomcat服務器便可
    #默認: 1.輪詢的機制  2.權重策略 
    upstream jtW {
        server 127.0.0.1:8081 weight=6;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1;
    }
  1. IPHASH策略--ip_hash:

當某些業務須要用戶特定的訪問固定的服務器時,就要選用iphash機制.

#默認: 1.輪詢的機制  2.權重策略  3.IPHASH
    upstream jtW {
        ip_hash;
        server 127.0.0.1:8081 weight=6;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1;
    }

能夠了解一下iphash是如何選擇服務器的:
image
會經過ip地址的hash值對服務器數量進行取模,而後只訪問取模爲零的服務器,只有該服務器宕機後纔會再訪問其餘的.

負載均衡補充

  1. down屬性:

若是tomcat服務器發生了宕機的現象,則經過配置文件標識down的屬性,則nginx將不會再次訪問故障機.
server 127.0.0.1:8081 down;

  1. backup屬性:

一般狀況下 都會部署一些備用機防止因爲主機宕機,剩餘的機器不能實現高負責從而致使整個服務宕機的問題.
若是設置了備用機,則正常狀況下用戶不會訪問.可是當主機宕機或者主機遇忙時纔會訪問.
server 127.0.0.1:8083 backup;

  1. tomcat高可用配置:

1).max_fails=1 配置nginx訪問服務器的最大的失敗次數.
2).fail_timeout=60s; 理解爲一個時間週期. 若是發現服務器宕機,則在60秒內不會再次訪問故障機.
server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;

相關文章
相關標籤/搜索