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.