From 838fe806fc679475b3e5fc294d2e37fb836de4c9 Mon Sep 17 00:00:00 2001 From: srzou Date: Tue, 30 Jul 2024 16:28:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.2.0-beta1):=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E5=92=8C=E6=9C=80=E5=90=8E=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../allocate/client/ClientLoadBalanceFirst.java | 17 +++++++++++++++++ .../allocate/client/ClientLoadBalanceLast.java | 17 +++++++++++++++++ .../client/ClientLoadBalanceManager.java | 4 +++- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceFirst.java create mode 100644 snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLast.java diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceFirst.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceFirst.java new file mode 100644 index 000000000..57f3d72df --- /dev/null +++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceFirst.java @@ -0,0 +1,17 @@ +package com.aizuda.snailjob.server.common.allocate.client; + +import com.aizuda.snailjob.server.common.ClientLoadBalance; + +import java.util.TreeSet; + +public class ClientLoadBalanceFirst implements ClientLoadBalance { + @Override + public String route(String key, TreeSet clientAllAddressSet) { + return clientAllAddressSet.first(); + } + + @Override + public int routeType() { + return ClientLoadBalanceManager.AllocationAlgorithmEnum.FIRST.getType(); + } +} diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLast.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLast.java new file mode 100644 index 000000000..1e978cc21 --- /dev/null +++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceLast.java @@ -0,0 +1,17 @@ +package com.aizuda.snailjob.server.common.allocate.client; + +import com.aizuda.snailjob.server.common.ClientLoadBalance; + +import java.util.TreeSet; + +public class ClientLoadBalanceLast implements ClientLoadBalance { + @Override + public String route(String key, TreeSet clientAllAddressSet) { + return clientAllAddressSet.last(); + } + + @Override + public int routeType() { + return ClientLoadBalanceManager.AllocationAlgorithmEnum.LAST.getType(); + } +} diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceManager.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceManager.java index a18183aba..b8fd40d70 100644 --- a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceManager.java +++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/allocate/client/ClientLoadBalanceManager.java @@ -29,7 +29,9 @@ public class ClientLoadBalanceManager { CONSISTENT_HASH(1, new ClientLoadBalanceConsistentHash(100)), RANDOM(2, new ClientLoadBalanceRandom()), LRU(3, new ClientLoadBalanceLRU(100)), - ROUND(4, new ClientLoadBalanceRound()); + ROUND(4, new ClientLoadBalanceRound()), + FIRST(5, new ClientLoadBalanceFirst()), + LAST(6, new ClientLoadBalanceLast()); private final int type; private final ClientLoadBalance clientLoadBalance;