diff --git a/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java b/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java index 41ac671c..df5c8d9b 100644 --- a/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java +++ b/jero-boot/jero-cloud-module/jero-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java @@ -4,7 +4,7 @@ import com.xxl.job.admin.core.route.ExecutorRouter; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.biz.model.TriggerParam; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.List; @@ -19,7 +19,7 @@ import java.util.TreeMap; */ public class ExecutorRouteConsistentHash extends ExecutorRouter { - private static int VIRTUAL_NODE_NUM = 100; + private static final int VIRTUAL_NODE_NUM = 100; /** * get hash code on 2^32 ring (md5散列的方式计算hash值) @@ -37,12 +37,7 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter { } md5.reset(); byte[] keyBytes = null; - try { - keyBytes = key.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException("Unknown string :" + key, e); - } - + keyBytes = key.getBytes(StandardCharsets.UTF_8); md5.update(keyBytes); byte[] digest = md5.digest(); @@ -52,15 +47,14 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter { | ((long) (digest[1] & 0xFF) << 8) | (digest[0] & 0xFF); - long truncateHashCode = hashCode & 0xffffffffL; - return truncateHashCode; + return hashCode & 0xffffffffL; } public String hashJob(int jobId, List addressList) { // ------A1------A2-------A3------ // -----------J1------------------ - TreeMap addressRing = new TreeMap(); + TreeMap addressRing = new TreeMap<>(); for (String address: addressList) { for (int i = 0; i < VIRTUAL_NODE_NUM; i++) { long addressHash = hash("SHARD-" + address + "-NODE-" + i); @@ -79,7 +73,7 @@ public class ExecutorRouteConsistentHash extends ExecutorRouter { @Override public ReturnT route(TriggerParam triggerParam, List addressList) { String address = hashJob(triggerParam.getJobId(), addressList); - return new ReturnT(address); + return new ReturnT<>(address); } }