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].