You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2018/05/31 05:31:02 UTC

[rocketmq] branch develop updated: Issue #311 improve broker register topicrouter info performance

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

lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 9d11b56  Issue #311 improve broker register topicrouter info performance
9d11b56 is described below

commit 9d11b56c3699c1bf3238bfca842c7c1ee7255d9d
Author: 傅冲 <yu...@alibaba-inc.com>
AuthorDate: Tue May 22 21:09:54 2018 +0800

    Issue #311 improve broker register topicrouter info performance
---
 .../org/apache/rocketmq/broker/BrokerController.java   |  2 +-
 .../broker/processor/AdminBrokerProcessor.java         |  5 ++++-
 .../java/org/apache/rocketmq/common/BrokerConfig.java  | 18 ++++++++++++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java b/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java
index 60f287a..a4968cb 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java
@@ -741,7 +741,7 @@ public class BrokerController {
                     log.error("registerBrokerAll Exception", e);
                 }
             }
-        }, 1000 * 10, 1000 * 30, TimeUnit.MILLISECONDS);
+        }, 1000 * 10, Math.max(10000, Math.min(brokerConfig.getRegisterNameServerPeriod(), 60000)), TimeUnit.MILLISECONDS);
 
         if (this.brokerStatsManager != null) {
             this.brokerStatsManager.start();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
index a9e54aa..c0a4b20 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
@@ -245,7 +245,10 @@ public class AdminBrokerProcessor implements NettyRequestProcessor {
         topicConfig.setTopicSysFlag(requestHeader.getTopicSysFlag() == null ? 0 : requestHeader.getTopicSysFlag());
 
         this.brokerController.getTopicConfigManager().updateTopicConfig(topicConfig);
-        this.brokerController.registerBrokerAll(false, true, true);
+
+        if (brokerController.getBrokerConfig().getRegisterNameServerPeriod() == 0) {
+            this.brokerController.registerBrokerAll(false, true, true);
+        }
 
         return null;
     }
diff --git a/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java b/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
index fa9a9ef..7caf830 100644
--- a/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
+++ b/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
@@ -136,6 +136,16 @@ public class BrokerConfig {
 
     private boolean forceRegister = true;
 
+    /**
+     *
+     * This configurable item defines interval of topics registration of broker to name server. Allowing values are
+     * between 10, 000 and 60, 000 milliseconds.
+     *
+     * If set to 0, newly created topics will be immediately reported to name servers and interval of periodical
+     * registration defaults to 10, 000 in milliseconds.
+     */
+    private int registerNameServerPeriod = 1000 * 30;
+
     public boolean isTraceOn() {
         return traceOn;
     }
@@ -617,4 +627,12 @@ public class BrokerConfig {
     public void setForceRegister(boolean forceRegister) {
         this.forceRegister = forceRegister;
     }
+
+    public int getRegisterNameServerPeriod() {
+        return registerNameServerPeriod;
+    }
+
+    public void setRegisterNameServerPeriod(int registerNameServerPeriod) {
+        this.registerNameServerPeriod = registerNameServerPeriod;
+    }
 }

-- 
To stop receiving notification emails like this one, please contact
lizhanhui@apache.org.