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: 傅冲 <[email protected]>
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
[email protected].

Reply via email to