IP負載均衡

来源:https://www.cnblogs.com/wenquanli/archive/2018/09/29/9712819.html
-Advertisement-
Play Games

推薦一篇關於LVS的好文: https://www.cnblogs.com/gaoxu387/p/7941381.html 一、原博主要內容: 1、概述 IP負載均衡:四層負載,是基於IP+埠的負載均衡,主要代表是LVS(Linux Virtual Server) LVS工作原理:LVS的IP負載 ...


推薦一篇關於LVS的好文:

https://www.cnblogs.com/gaoxu387/p/7941381.html

一、原博主要內容:

1、概述

IP負載均衡:四層負載,是基於IP+埠的負載均衡,主要代表是LVS(Linux Virtual Server

LVS工作原理:LVS的IP負載均衡技術是通過IPVS模塊實現的,IPVS模塊工作在內核空間。

2、LVS的工作模式

A、DR模式 通過 MAC 地址改寫機制實現轉發,集群局限於區域網內,需要設置lo介面的VIP不能響應本地網路內的arp請求。 B、TUN模式 通過再封裝一層IP報文轉發,集群可在公網上。 C、NAT模式 通過修改IP報文轉發,集群局限在區域網內。

3、LVS的調度演算法

  • 輪叫調度(Round-Robin Scheduling)
  • 加權輪叫調度(Weighted Round-Robin Scheduling)
  • 最小連接調度(Least-Connection Scheduling)
  • 加權最小連接調度(Weighted Least-Connection Scheduling)
  • 基於局部性的最少鏈接(Locality-Based Least Connections Scheduling)
  • 帶複製的基於局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)
  • 目標地址散列調度(Destination Hashing Scheduling)
  • 源地址散列調度(Source Hashing Scheduling)

 固定調度演算法:rr,wrr,dh,sh

 動態調度演算法:wlc,lc,lblc,lblcr

 

二、DR模式的配置

 這裡介紹一下DR模式的配置。 1、負載均衡伺服器:一般對外的負載均衡器須具有災備能力,在負載均衡伺服器上安裝keepalived,並完成keepalived的配置,配置如下:
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_EPG {
    state MASTER   //主用設置為MASTER,備用設置為BACKUP
    interface bond0
    virtual_router_id 64
    priority 100  //主用優先順序要比備用優先順序高
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        111.11.11.10  //對外VIP
    }
}
virtual_server 111.11.11.10 6600 {
    delay_loop 6
    lb_algo rr   //調度演算法RR,也可以設置其他演算法
    lb_kind DR   //負載均衡模式為DR
    persistence_timeout 20
    protocol TCP

real_server 111.11.11.21 6600 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
        }
    }
real_server 111.11.11.22 6600 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
        }
    }

real_server 111.11.11.23 6600 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
        }
    }   
}
2、RS節點伺服器:需要設置lo介面的VIP,且設置其不能響應本地網路內的arp請求,可執行腳本:
 1 #!/bin/bash
 2 # description: Config realserver lo and apply noarp
 3 VIP=111.11.11.10
 4 
 5 . /etc/rc.d/init.d/functions
 6 
 7 case "$1" in
 8 start)
 9        echo "1" >/proc/sys/net/ipv4/conf/bond0/arp_ignore
10        echo "2" >/proc/sys/net/ipv4/conf/bond0/arp_announce
11        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
12        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
13        sysctl -p >/dev/null 2>&1
14       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
15        /sbin/route add -host $VIP dev lo:0
16        echo "RealServer Start OK"
17        ;;
18 stop)
19        ifconfig lo:0 down
20        route del $VIP >/dev/null 2>&1
21        echo "0" >/proc/sys/net/ipv4/conf/bond0/arp_ignore
22        echo "0" >/proc/sys/net/ipv4/conf/bond0/arp_announce
23        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
24        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
25        echo "RealServer Stoped"
26        ;;
27 status)
28         # Status of LVS-DR real server.
29         islothere=`/sbin/ifconfig lo:0 | grep $VIP`
30         isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
31         if [ ! "$islothere" -o ! "isrothere" ];then
32             # Either the route or the lo:0 device
33             # not found.
34             echo "LVS-DR real server Stopped."
35         else
36             echo "LVS-DR Running."
37           fi
38 ;;
39 *)
40         # Invalid entry.
41         echo "$0: Usage: $0 {start|status|stop}"
42         exit 1
43 ;;
44 esac
45 exit 0

註意:此腳本最好設置成開機執行,如腳本名稱為realserver.sh,放置在/usr/bin/路徑下,賦可執行許可權,在/etc/rc.local的末尾添加一行:/usr/bin/realserver.sh start

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • title: 動態鏈接庫函數內的靜態變數,奇妙的UNIQUE Bind date: 2018 09 28 09:28:22 tags: 介紹 模板函數和內斂函數中的靜態變數,在跨so中的表現,和定義在其他函數中的靜態變數的表現稍微有所不同。使用不慎,會造成預期之外的結果。本文對該現象進行了探討。 多 ...
  • 一、介紹Jenkins 1、Jenkins概念 Jenkins是一個功能強大的應用程式,允許持續集成和持續交付項目,無論用的是什麼平臺。這是一個免費的源代碼,可以處理任何類型的構建或持續集成。集成Jenkins可以用於一些測試和部署技術。Jenkins是一種軟體允許持續集成。 2、Jenkins目的 ...
  • Microbit藍芽配對 (Bluetooth Pairing) Microbit 可以像手機或平板與其他藍芽裝置一樣,一旦做完第一次配對完就可以使用”藍芽服務” paired with the micro:bit,再與行動裝置去交換數據。 什麼是配對 ? 配對就是讓你的Microbit 去信任(t ...
  • 轉載:http://www.safecdn.cn/2018/09/hping-install/ Hping的主要功能有: 測試防火牆實用的埠掃描網路檢測,可以用不同的協議,服務類型(TOS),IP片分手工探測MTU(最大傳輸單元)路徑的先進性的路由跟蹤,所有請立即獲取iTunes的協議遠程操作系統 ...
  • 問題描述 我有2個Tomcat 一個埠開啟(8021),一個埠未開啟(8022),在nginx里用upstream模塊進行代理 ,代理的負載演算法採用的是預設的輪詢演算法,配置成功後,訪問頁面時並沒有出現輪詢的效果 ,頁面一直顯示是正常訪問的頁面,原則上會有一次出現502界面或者報錯的頁面的,但是通 ...
  • L2TP連接嘗試失敗,因為安全層在初始化與遠程電腦的協商時遇到了一個處理錯誤 錯誤描述:“ L2TP連接嘗試失敗,因為安全層在初始化與遠程電腦的協商時遇到了一個處理錯誤” 只有這個沒有錯誤碼。 從網上參考 Bob Hou: http://blog.csdn.net/minxihou 博客 首先連 ...
  • 本文介紹一下 shell 的語法。 一、變數 在 shell 里,使用變數之前通常並不需要事先為他們做出聲明,需要使用的時候直接創建就行了。預設情況下,所有變數都被看做字元串並以字元串來存儲,即使它們被賦值為數值時也是如此。shell 和一些工具會在需要時把數值型字元串轉換成對應的數值以對它們進行操 ...
  • 一、環境搭建 1. 安裝Java 配java_home, /etc/profile 2.安裝Jenkins 下載war包,用 Java -jar Jenkins.war或者 把war包放tomcat的webapps下 http://ip:8080或者 http://ip:8080/jenkins 3 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...