diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java index d75a21a323..c243258a24 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java +++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java @@ -18,6 +18,7 @@ package org.apache.dubbo.remoting.exchange; import org.apache.dubbo.common.utils.StringUtils; +import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.atomic.AtomicLong; import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT; @@ -27,7 +28,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT; */ public class Request { - private static final AtomicLong INVOKE_ID = new AtomicLong(0); + private static final AtomicLong INVOKE_ID = new AtomicLong(ThreadLocalRandom.current().nextLong()); private final long mId; diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/RequestTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/RequestTest.java index f0a8988ee7..d358ffaa4c 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/RequestTest.java +++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/RequestTest.java @@ -23,6 +23,8 @@ class RequestTest { @Test void test() { + Request requestStart = new Request(); + Request request = new Request(); request.setTwoWay(true); request.setBroken(true); @@ -35,7 +37,7 @@ class RequestTest { Assertions.assertTrue(request.isEvent()); Assertions.assertEquals(request.getVersion(), "1.0.0"); Assertions.assertEquals(request.getData(), "data"); - Assertions.assertTrue(request.getId() >= 0); + Assertions.assertEquals(requestStart.getId() + 1, request.getId()); request.setHeartbeat(true); Assertions.assertTrue(request.isHeartbeat());