国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于權(quán)重的隨機負(fù)載均衡路由算法

dailybird / 2719人閱讀

摘要:樣例實現(xiàn)一實現(xiàn)二總個數(shù)總權(quán)重權(quán)重是否都一樣累計總權(quán)重計算所有權(quán)重是否一樣如果權(quán)重不相同且權(quán)重大于則按總權(quán)重數(shù)隨機并確定隨機值落在哪個片斷上如果權(quán)重相同或權(quán)重為則均等隨機想獲取最新內(nèi)容,請關(guān)注微信公眾號

樣例
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());
實現(xiàn)一
public void weightRandom(){
        Set keySet = 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
實現(xiàn)二
public String randomWeight(){
        int length = serverMap.size(); // 總個數(shù)
        int totalWeight = 0; // 總權(quán)重
        boolean sameWeight = true; // 權(quán)重是否都一樣
        for (int i = 0; i < length; i++) {
            int weight = serverMap.get(servers.get(i));
            totalWeight += weight; // 累計總權(quán)重
            if (sameWeight && i > 0
                    && weight != serverMap.get(servers.get(i-1))) {
                sameWeight = false; // 計算所有權(quán)重是否一樣
            }
        }
        if (totalWeight > 0 && ! sameWeight) {
            // 如果權(quán)重不相同且權(quán)重大于0則按總權(quán)重數(shù)隨機
            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);
                }
            }
        }
        // 如果權(quán)重相同或權(quán)重為0則均等隨機
        return servers.get(ThreadLocalRandom.current().nextInt(length));
    }
doc

dubbo-RandomLoadBalance

想獲取最新內(nèi)容,請關(guān)注微信公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67135.html

相關(guān)文章

  • dubbo服務(wù)集群擴展、目錄服務(wù)、路由規(guī)則、負(fù)載均衡

    摘要:集群擴展當(dāng)有多個服務(wù)提供方時,將多個服務(wù)提供方組織成一個集群,并偽裝成一個提供方。目錄服務(wù)的頭部注釋中,引用做了一個介紹。路由規(guī)則負(fù)責(zé)從多個中按路由規(guī)則選出子集,比如按照讀寫分離應(yīng)用隔離等。若處理完畢則計數(shù)器減。 1. Cluster-集群擴展 當(dāng)有多個服務(wù)提供方時,將多個服務(wù)提供方組織成一個集群,并偽裝成一個提供方。已知的實現(xiàn)如下, 1-1. FailoverCluster(默認(rèn)的)...

    shery 評論0 收藏0
  • Dubbo 源碼分析 - 集群容錯之 LoadBalance

    摘要:即服務(wù)提供者目前正在處理的請求數(shù)一個請求對應(yīng)一條連接最少,表明該服務(wù)提供者效率高,單位時間內(nèi)可處理更多的請求。此時應(yīng)優(yōu)先將請求分配給該服務(wù)提供者。初始情況下,所有服務(wù)提供者活躍數(shù)均為。 1.簡介 LoadBalance 中文意思為負(fù)載均衡,它的職責(zé)是將網(wǎng)絡(luò)請求,或者其他形式的負(fù)載均攤到不同的機器上。避免集群中部分服務(wù)器壓力過大,而另一些服務(wù)器比較空閑的情況。通過負(fù)載均衡,可以讓每臺服務(wù)...

    ybak 評論0 收藏0
  • 一篇讀懂分布式架構(gòu)下負(fù)載均衡

    摘要:一篇讀懂分布式架構(gòu)下的負(fù)載均衡微信公眾號一刻鐘大型現(xiàn)實非嚴(yán)肅主義現(xiàn)場一刻鐘與你分享優(yōu)質(zhì)技術(shù)架構(gòu)與見聞,做一個有劇情的程序員關(guān)注可第一時間了解更多精彩內(nèi)容,定期有福利相送喲。 一篇讀懂分布式架構(gòu)下的負(fù)載均衡 微信公眾號:IT一刻鐘大型現(xiàn)實非嚴(yán)肅主義現(xiàn)場一刻鐘與你分享優(yōu)質(zhì)技術(shù)架構(gòu)與見聞,做一個有劇情的程序員關(guān)注可第一時間了解更多精彩內(nèi)容,定期有福利相送喲。 showImg(https:/...

    LuDongWei 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<