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