This is an automated email from the ASF dual-hosted git repository.

gosonzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new f61167ac4b [INLONG-8321][TubeMQ] Improve the precision of tube 
consumer id (#8325)
f61167ac4b is described below

commit f61167ac4b33e85d654039ff95d571db5f33c67b
Author: Goson Zhang <[email protected]>
AuthorDate: Tue Jun 27 10:12:46 2023 +0800

    [INLONG-8321][TubeMQ] Improve the precision of tube consumer id (#8325)
---
 .../inlong/tubemq/client/consumer/BaseMessageConsumer.java       | 8 +++++---
 .../tubemq/client/consumer/SimpleClientBalanceConsumer.java      | 9 +++++----
 .../apache/inlong/tubemq/client/producer/ProducerManager.java    | 9 +++++----
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git 
a/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/BaseMessageConsumer.java
 
b/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/BaseMessageConsumer.java
index eeeaed82db..543bfb9bc7 100644
--- 
a/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/BaseMessageConsumer.java
+++ 
b/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/BaseMessageConsumer.java
@@ -52,6 +52,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -79,7 +80,8 @@ public class BaseMessageConsumer implements MessageConsumer {
     private static final Logger logger =
             LoggerFactory.getLogger(BaseMessageConsumer.class);
     private static final int REBALANCE_QUEUE_SIZE = 5000;
-    private static final AtomicInteger consumerCounter = new AtomicInteger(0);
+    private static final SecureRandom sRandom = new SecureRandom(
+            Long.toString(System.nanoTime()).getBytes());
     protected final String consumerId;
     protected final ConsumerConfig consumerConfig;
     protected final RmtDataCache rmtDataCache;
@@ -590,8 +592,8 @@ public class BaseMessageConsumer implements MessageConsumer 
{
                 .append(this.consumerConfig.getConsumerGroup())
                 .append("_").append(AddressUtils.getLocalAddress())
                 .append("-").append(pidName)
-                .append("-").append(System.currentTimeMillis())
-                .append("-").append(consumerCounter.incrementAndGet());
+                .append("-").append(System.nanoTime())
+                .append("-").append(Math.abs(sRandom.nextInt()));
         if (this.isPullConsume) {
             strBuffer.append("-Pull-");
         } else {
diff --git 
a/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/SimpleClientBalanceConsumer.java
 
b/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/SimpleClientBalanceConsumer.java
index e1d73f02ce..7113585b07 100644
--- 
a/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/SimpleClientBalanceConsumer.java
+++ 
b/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/consumer/SimpleClientBalanceConsumer.java
@@ -52,6 +52,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.management.ManagementFactory;
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -79,8 +80,8 @@ public class SimpleClientBalanceConsumer implements 
ClientBalanceConsumer {
     private static final Logger logger =
             LoggerFactory.getLogger(SimpleClientBalanceConsumer.class);
 
-    private static final AtomicInteger consumerCounter =
-            new AtomicInteger(0);
+    private static final SecureRandom sRandom = new SecureRandom(
+            Long.toString(System.nanoTime()).getBytes());
     protected final String consumerId;
     protected final ConsumerConfig consumerConfig;
     private final InnerSessionFactory sessionFactory;
@@ -1753,8 +1754,8 @@ public class SimpleClientBalanceConsumer implements 
ClientBalanceConsumer {
                 .append(this.consumerConfig.getConsumerGroup())
                 .append("_").append(AddressUtils.getLocalAddress())
                 .append("-").append(pidName)
-                .append("-").append(System.currentTimeMillis())
-                .append("-").append(consumerCounter.incrementAndGet())
+                .append("-").append(System.nanoTime())
+                .append("-").append(Math.abs(sRandom.nextInt()))
                 .append("-Balance-")
                 .append(TubeClientVersion.CONSUMER_VERSION).toString();
     }
diff --git 
a/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/producer/ProducerManager.java
 
b/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/producer/ProducerManager.java
index e7e166de97..f9e2843160 100644
--- 
a/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/producer/ProducerManager.java
+++ 
b/inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/producer/ProducerManager.java
@@ -48,6 +48,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.management.ManagementFactory;
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -71,8 +72,8 @@ public class ProducerManager {
     private static final Logger logger =
             LoggerFactory.getLogger(ProducerManager.class);
     private static final int BROKER_UPDATED_TIME_AFTER_RETRY_FAIL = 2 * 60 * 
60 * 1000;
-    private static final AtomicInteger producerCounter =
-            new AtomicInteger(0);
+    private static final SecureRandom sRandom = new SecureRandom(
+            Long.toString(System.nanoTime()).getBytes());
     private final String producerId;
     private final int producerAddrId;
     private final TubeClientConfig tubeClientConfig;
@@ -560,8 +561,8 @@ public class ProducerManager {
         return new StringBuilder(256)
                 .append(AddressUtils.getLocalAddress())
                 .append("-").append(pidName)
-                .append("-").append(System.currentTimeMillis())
-                .append("-").append(producerCounter.incrementAndGet())
+                .append("-").append(System.nanoTime())
+                .append("-").append(Math.abs(sRandom.nextInt()))
                 
.append("-").append(TubeClientVersion.PRODUCER_VERSION).toString();
     }
 

Reply via email to