服務發生變化時,需要手動修改upstream列表,相對比較麻煩,因此呢我們需要一種服務註冊發現機制,將upstream動態註冊到nginx上,從而實現upstream服務自動發現。
常見的分布式服務註冊發現系統有consul,zookeeper,etcd,eureka。
特性:服務註冊
服務發現
故障檢測
k/v儲存
資料一致演算法:常見raft,paxos演算法
consul+consul-template 每次發現配置更改需要raload nginx,重啟nginx。
consul+openresty 實現無需raload動態負載均衡 (lua語言,配置檔案放字典裡面,每隔時間讀取)
consul+upsync+nginx 實現無需raload動態負載均衡 (原理同上)
Nginx實現動態負載均衡
1 基於輪詢方式 輪詢是最基本的配置方法,它是upstream模組預設的負載均衡預設策略。每個請求會按時間順序逐一分配到不同的後端伺服器。2 依據ip ip hash 分配 指定負載均衡器按照基於客戶端ip的分配方式,這個方法確保了相同的客戶端的請求一直傳送到相同的伺服器,以保證session會話。...
nginx 負載均衡 Nginx負載均衡策略
nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...
nginx負載均衡
nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...