From 0ed20816e21be4106ef28857d6c2e67d6ca8efc9 Mon Sep 17 00:00:00 2001 From: xujingfeng <jingfeng.xjf@alibaba-inc.com> Date: Wed, 8 May 2019 19:00:30 +0800 Subject: [PATCH] add user loadbalance extension --- .../com/aliware/tianchi/UserLoadBalance.java | 22 +++++++++++++++++++ .../org.apache.dubbo.rpc.cluster.LoadBalance | 1 + 2 files changed, 23 insertions(+) create mode 100644 workspace-gateway/src/main/java/com/aliware/tianchi/UserLoadBalance.java create mode 100644 workspace-gateway/src/main/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance diff --git a/workspace-gateway/src/main/java/com/aliware/tianchi/UserLoadBalance.java b/workspace-gateway/src/main/java/com/aliware/tianchi/UserLoadBalance.java new file mode 100644 index 0000000..954c85e --- /dev/null +++ b/workspace-gateway/src/main/java/com/aliware/tianchi/UserLoadBalance.java @@ -0,0 +1,22 @@ +package com.aliware.tianchi; + +import org.apache.dubbo.common.URL; +import org.apache.dubbo.rpc.Invocation; +import org.apache.dubbo.rpc.Invoker; +import org.apache.dubbo.rpc.RpcException; +import org.apache.dubbo.rpc.cluster.LoadBalance; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +/** + * @author daofeng.xjf + */ +public class UserLoadBalance implements LoadBalance { + + @Override + public <T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException { + System.out.println("use user loadbalance"); + return invokers.get(ThreadLocalRandom.current().nextInt(invokers.size())); + } +} diff --git a/workspace-gateway/src/main/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance b/workspace-gateway/src/main/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance new file mode 100644 index 0000000..7276c7d --- /dev/null +++ b/workspace-gateway/src/main/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance @@ -0,0 +1 @@ +com.aliware.tianchi.UserLoadBalance \ No newline at end of file -- GitLab