From 800421eeb08973873b3c9ee42060dd7b976c6499 Mon Sep 17 00:00:00 2001 From: sunhangda Date: Tue, 27 Jul 2021 17:57:07 +0800 Subject: [PATCH] registerProducer & unregisterProducer add synchronization too, how about add for producer --- .../client/impl/factory/MQClientInstance.java | 24 +++---------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java index 976dcba1..d30534ff 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java @@ -882,24 +882,6 @@ public class MQClientInstance { this.unregisterClient(null, group); } - private void unregisterClientWithLock(final String producerGroup, final String consumerGroup) { - try { - if (this.lockHeartbeat.tryLock(LOCK_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)) { - try { - this.unregisterClient(producerGroup, consumerGroup); - } catch (Exception e) { - log.error("unregisterClient exception", e); - } finally { - this.lockHeartbeat.unlock(); - } - } else { - log.warn("lock heartBeat, but failed. [{}]", this.clientId); - } - } catch (InterruptedException e) { - log.warn("unregisterClientWithLock exception", e); - } - } - private void unregisterClient(final String producerGroup, final String consumerGroup) { Iterator>> it = this.brokerAddrTable.entrySet().iterator(); while (it.hasNext()) { @@ -927,7 +909,7 @@ public class MQClientInstance { } } - public boolean registerProducer(final String group, final DefaultMQProducerImpl producer) { + public synchronized boolean registerProducer(final String group, final DefaultMQProducerImpl producer) { if (null == group || null == producer) { return false; } @@ -941,9 +923,9 @@ public class MQClientInstance { return true; } - public void unregisterProducer(final String group) { + public synchronized void unregisterProducer(final String group) { this.producerTable.remove(group); - this.unregisterClientWithLock(group, null); + this.unregisterClient(group, null); } public boolean registerAdminExt(final String group, final MQAdminExtInner admin) { -- GitLab