贵州十一选五前三直开奖号 | 財經 | 資源 | 理財 | 考研 | 職場 | 論文 | 資格 | 股票學院 |

股票學院: 股票入門 - 股票知識 - 股票術語 - 炒股技巧 - 選股技巧 - 跟莊技巧 - 炒股經驗 - 投資策略 - K線圖 - 均線 - 分時圖 - 成交量 - 波浪理論 - 基本面分析 - 心理分析 - 漲停研究 - 趨勢線 - 江恩理論 - MACD - KDJ - 技術指標 - 財經股票書籍在線閱讀 - 金融類書籍下載 - 銀行學院 - 保險學院 - 外匯學院 - 債券學院 - 股票學院 - 基金學院 - 港股學院 - 黃金學院

當前位置:贵州十一选五前三直开奖号 > 金融云 > 文章正文

今曰贵州十一选五预测号码今天专家推测:負載均衡與反向代理(Nginx/OpenResty)

時間:2019-09-19 12:58:18來源:今日頭條作者:佚名

    贵州十一选五前三直开奖号 www.grzfr.com 我們使用Nginx時,大多數場景下使用的都是七層的HTTP負載均衡(ngx_http_upstream_module)。在1.9.0版本以后,Nginx也開始支持TCP(ngx_stream_upstream_module)四層負載均衡。

    四層/七層負載均衡的區別

    四層負載均衡,就是基于IP+端口的負載均衡(TCP/UDP)。七層負載均衡,就是基于URL等應用層協議(HTTP)的負載均衡。熟悉網絡分層協議的同學就很容易推理到,還會有基于MAC地址的二層負載均衡和基于IP地址的三層負載均衡。二層負載均衡會通過一個虛擬的MAC地址接收請求,然后再分配到真實的MAC地址上去。三層負載均衡會通過一個VIP(虛擬IP)接收請求,然后再分配到真實的IP上去。四層負載均衡會通過IP+端口接收請求,然后再分配到真實的服務器。七層負載均衡通過虛擬的URL或者HOST接收請求,然后再分配到真實的服務器上去。

    負載均衡與反向代理(Nginx/OpenResty)

    所謂的四層到七層的負載均衡,就是依據四層及以下、七層及以下的信息來決定如何轉發。比如四層的負載均衡,就是利用三層的VIP,然后加上四層的端口號,來決定流量如何來進行負載均衡。

    對于負載均衡我們需要關注以下幾點:

    • 上游服務器配置:使用upstream server配置上游服務器。
    • 負載均衡算法:配置多個上游服務器的負載均衡機制。
    • 失敗重試機制:配置當超時或者上游服務器不存活時,是否需要重試其他服務器。
    • 服務器心跳檢查:上游服務器的健康檢查/心跳檢查。

    upstream 配置

    upstream就是真實處理業務的服務器,upstream在http指令下:

    1. upstream backend { 
    2.  server 192.168.0.1:8080 weight=1; 
    3.  server 192.168.0.2:8080 weight=2; 

    upstream server 的配置如下:

    • IP地址和端口:配置上游服務器的IP地址和端口;
    • 權重:weight用來配置權重,默認1。權重越大,分發的請求越多。如上所示:3個請求:1個到192.168.0.1,2個到192.168.0.2。

    配置完上游服務器(upstream)之后,就要配置proxy_pass來處理用戶請求。

    1. location / { 
    2.  proxy_pass //backend; 

    負載均衡算法

    負載均衡策略用來解決請求到來時,如何選擇upstream server進行處理,默認采用的是round-robin(輪詢)。

    • round-robin:輪詢,默認負載均衡算法,通過配合weight配置實現基于權重的輪詢。
    • ip_hash:根據客戶IP進行負載均衡,相同的IP會被負載均衡到同一個upstream,配置如下:
    1. upstream backend { 
    2.  ip_hash; 
    3.  server 192.168.0.1:8080 weight=1; 
    4.  server 192.168.0.2:8080 weight=2; 
    • hash_key [consistent]:對于一個key進行hash或者使用一致性哈希算法進行負載均衡。Hash算法存在的問題是:當增加/刪除一臺服務器時,將導致很多key被重新負載均衡到不同的服務器。從而有可能導致用戶訪問出問題。因此可以考慮一致性哈希,服務器橫向擴展時,只有少部分機器會被重新分配。
    • 哈希算法:此處是根據uri進行負載均衡,可以使用Nginx變量,從而實現復雜的算法。
    1. upstream backend { 
    2.  hash $uri; 
    3.  server 192.168.0.1:8080 weight=1; 
    4.  server 192.168.0.2:8080 weight=2; 

    一致性哈希算法:consistent_key動態指定。

    1. upstream nginx_local_server { 
    2.  hash $consistent_key consistent; 
    3.  server 192.168.0.1:8080 weight=1; 
    4.  server 192.168.0.2:8080 weight=2; 

    下面看一下根據參數cat(類目),做的稍微復雜一點的負載均衡:

    1. location / { 
    2.  set $consistent_key $arg_cat; 
    3.  if ($consistent_key = " ") { 
    4.  set $consistent_key $request_uri; 
    5.  } 

    而在實際使用過程中,更多的是使用Lua腳本進行處理。

    1. set_by_lua_file $consistent_key "lua_balancing.lua"; 

    lua_balancing.lua

    1. local consistent_key = args.cat 
    2. if not consistent_key or consistent_key == '' then 
    3.  consistent_key = ngx_var.request_uri 
    4. end 
    5. local value = balancing_cache:get(consistent_key) 
    6. if not value then 
    7.  success, err = balancing_cache:set(consistent_key, 1, 60) 
    8. else 
    9.  newval, err = balancing_cache:incr(consistent_key, 1) 
    10. end 

    相關閱讀

    焦點圖文

    關于我們 | 廣告服務 | 商務合作 | 網站地圖

    版權所有 Copyright(C)2018-2020 蘇州騏云躍網絡科技有限公司,未經授權禁止復制或建立鏡像,否則將依法追究法律責任!
    聲明:我們不做任何形式的代客理財及投資指導,凡是以天下金融網名義做股票推薦的行為均屬違法!
    廣告商的言論與行為均與天下金融網無關!股市有風險,投資需謹慎。
    蘇公網安備 32050502000166號
    蘇ICP備14018528號
    商務合作:贵州十一选五前三直开奖号

    天下金融網版權所有