負載均衡可以放在客戶端,也可以放在服務端; 考慮每種算法的適用性有很多種角度, 比如機器處理能力,可擴展性,系統穩定性,業務定製化服務等,簡單羅列算法的優缺點,個人理解;
1. 隨機算法
機器配置相同,處理能力相似,但是dubbo默認的是隨機算法;
2. 輪詢算法
機器配置相同,處理能力差不多;
3. 最小活躍數
缺點: 服務能力弱的機器會喫不消,在服務能力偏弱的情況下,會強制跟服務能力強的機器靠近匹配(cpu密集型和io密集型);
優點: 機器性能好,處理的數據就越多,積壓請求少, 而且相對保證集羣穩定;
4. 一致性hash
適合集羣服務節點的增加和減少;
5. 加權方法
針對服務器服務能力不一樣,差異化對待處理;
6. hash方法
hash映射是固定的,那服務請求也會固定映射到指定服務器;
以上方法,隨機和輪詢需要考慮差異, 隨機可用性會更高,系統服務異常調用次數會低點;