溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringCloud-Ribbon如何進(jìn)行自定義負(fù)載均衡

發(fā)布時(shí)間:2021-09-29 14:52:56 來源:億速云 閱讀:121 作者:柒染 欄目:編程語言

本篇文章為大家展示了SpringCloud-Ribbon如何進(jìn)行自定義負(fù)載均衡,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

通過實(shí)現(xiàn) IRule 接口可以自定義負(fù)載策略,主要的選擇服務(wù)邏輯在 choose 方法中。我們這邊只是演示怎么自定義負(fù)載策略,所以沒寫選擇的邏輯,直接返回服務(wù)列表中第一個(gè)服務(wù)。具體代碼如下所示。

public class MyRule implements IRule {private ILoadBalancer lb;@Overridepublic Server choose(Object key) {
        List<Server> servers = lb.getAllServers();for (Server server : servers) {
            System.out.println(server.getHostPort());
        }return servers.get(0);
    }@Overridepublic void setLoadBalancer(ILoadBalancer lb) {this.lb = lb;
    }@Overridepublic ILoadBalancer getLoadBalancer() {return lb;
    }
}

在 Spring Cloud 中,可通過配置的方式使用自定義的負(fù)載策略,ribbon-config-demo 是調(diào)用的服務(wù)名稱。

ribbon-config-demo.ribbon.NFLoadBalancerRuleClassName=net.biancheng.ribbon_eureka_demo.rule.MyRule

重啟服務(wù),訪問調(diào)用了其他服務(wù)的接口,可以看到控制臺的輸出信息中已經(jīng)有了我們自定義策略中輸出的服務(wù)信息,并且每次都是調(diào)用第一個(gè)服務(wù)。這跟我們的邏輯是相匹配的。

上述內(nèi)容就是SpringCloud-Ribbon如何進(jìn)行自定義負(fù)載均衡,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI