Dubbo3 負(fù)載均衡擴(kuò)展

2022-04-22 11:34 更新

擴(kuò)展說明

從多個服務(wù)提供方中選擇一個進(jìn)行調(diào)用

擴(kuò)展接口

org.apache.dubbo.rpc.cluster.LoadBalance

擴(kuò)展配置

<dubbo:protocol loadbalance="xxx" />
<!-- 缺省值設(shè)置,當(dāng)<dubbo:protocol>沒有配置loadbalance時,使用此配置 -->
<dubbo:provider loadbalance="xxx" />

已知擴(kuò)展

  • org.apache.dubbo.rpc.cluster.loadbalance.RandomLoadBalance
  • org.apache.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance
  • org.apache.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance
  • org.apache.dubbo.rpc.cluster.loadbalance.ConsistentHashLoadBalance
  • org.apache.dubbo.rpc.cluster.loadbalance.ShortestResponseLoadBalance

擴(kuò)展示例

Maven 項目結(jié)構(gòu):

src
 |-main
    |-java
        |-com
            |-xxx
                |-XxxLoadBalance.java (實現(xiàn)LoadBalance接口)
    |-resources
        |-META-INF
            |-dubbo
                |-org.apache.dubbo.rpc.cluster.LoadBalance (純文本文件,內(nèi)容為:xxx=com.xxx.XxxLoadBalance)

XxxLoadBalance.java:

package com.xxx;
 
import org.apache.dubbo.rpc.cluster.LoadBalance;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.RpcException; 
 
public class XxxLoadBalance implements LoadBalance {
    public <T> Invoker<T> select(List<Invoker<T>> invokers, Invocation invocation) throws RpcException {
        // ...
    }
}

META-INF/dubbo/org.apache.dubbo.rpc.cluster.LoadBalance:

xxx=com.xxx.XxxLoadBalance


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號