摘要:樣例實現一實現二總個數總權重權重是否都一樣累計總權重計算所有權重是否一樣如果權重不相同且權重大于則按總權重數隨機并確定隨機值落在哪個片斷上如果權重相同或權重為則均等隨機想獲取最新內容,請關注微信公眾號
樣例
private Map實現一serverMap = new HashMap (){{ put("192.168.1.100",1); put("192.168.1.101",1); put("192.168.1.102",4); put("192.168.1.103",1); put("192.168.1.104",1); put("192.168.1.105",3); put("192.168.1.106",1); put("192.168.1.107",2); put("192.168.1.108",1); put("192.168.1.109",1); put("192.168.1.110",1); }}; private List servers = new ArrayList<>(serverMap.keySet());
public void weightRandom(){ SetkeySet = serverMap.keySet(); List servers = new ArrayList (); for(Iterator it = keySet.iterator();it.hasNext();){ String server = it.next(); int weight = serverMap.get(server); for(int i=0;i 實現二 public String randomWeight(){ int length = serverMap.size(); // 總個數 int totalWeight = 0; // 總權重 boolean sameWeight = true; // 權重是否都一樣 for (int i = 0; i < length; i++) { int weight = serverMap.get(servers.get(i)); totalWeight += weight; // 累計總權重 if (sameWeight && i > 0 && weight != serverMap.get(servers.get(i-1))) { sameWeight = false; // 計算所有權重是否一樣 } } if (totalWeight > 0 && ! sameWeight) { // 如果權重不相同且權重大于0則按總權重數隨機 int offset = ThreadLocalRandom.current().nextInt(totalWeight); // 并確定隨機值落在哪個片斷上 for (int i = 0; i < length; i++) { offset -= serverMap.get(servers.get(i)); if (offset < 0) { return servers.get(i); } } } // 如果權重相同或權重為0則均等隨機 return servers.get(ThreadLocalRandom.current().nextInt(length)); }docdubbo-RandomLoadBalance
想獲取最新內容,請關注微信公眾號
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67135.html
摘要:集群擴展當有多個服務提供方時,將多個服務提供方組織成一個集群,并偽裝成一個提供方。目錄服務的頭部注釋中,引用做了一個介紹。路由規則負責從多個中按路由規則選出子集,比如按照讀寫分離應用隔離等。若處理完畢則計數器減。 1. Cluster-集群擴展 當有多個服務提供方時,將多個服務提供方組織成一個集群,并偽裝成一個提供方。已知的實現如下, 1-1. FailoverCluster(默認的)...
摘要:即服務提供者目前正在處理的請求數一個請求對應一條連接最少,表明該服務提供者效率高,單位時間內可處理更多的請求。此時應優先將請求分配給該服務提供者。初始情況下,所有服務提供者活躍數均為。 1.簡介 LoadBalance 中文意思為負載均衡,它的職責是將網絡請求,或者其他形式的負載均攤到不同的機器上。避免集群中部分服務器壓力過大,而另一些服務器比較空閑的情況。通過負載均衡,可以讓每臺服務...
摘要:一篇讀懂分布式架構下的負載均衡微信公眾號一刻鐘大型現實非嚴肅主義現場一刻鐘與你分享優質技術架構與見聞,做一個有劇情的程序員關注可第一時間了解更多精彩內容,定期有福利相送喲。 一篇讀懂分布式架構下的負載均衡 微信公眾號:IT一刻鐘大型現實非嚴肅主義現場一刻鐘與你分享優質技術架構與見聞,做一個有劇情的程序員關注可第一時間了解更多精彩內容,定期有福利相送喲。 showImg(https:/...
閱讀 1734·2021-10-18 13:34
閱讀 3922·2021-09-08 10:42
閱讀 1566·2021-09-02 09:56
閱讀 1618·2019-08-30 15:54
閱讀 3140·2019-08-29 18:44
閱讀 3311·2019-08-26 18:37
閱讀 2227·2019-08-26 12:13
閱讀 466·2019-08-26 10:20