You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/06/01 15:42:44 UTC

[incubator-iotdb] branch fix_mqtt_max_length created (now 6e6b196)

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

qiaojialin pushed a change to branch fix_mqtt_max_length
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.


      at 6e6b196  add max mqtt message size config

This branch includes the following new commits:

     new 6e6b196  add max mqtt message size config

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-iotdb] 01/01: add max mqtt message size config

Posted by qi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch fix_mqtt_max_length
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 6e6b19655718a3decd9263ca676e562a42259911
Author: qiaojialin <64...@qq.com>
AuthorDate: Mon Jun 1 23:42:10 2020 +0800

    add max mqtt message size config
---
 docs/UserGuide/Client/Programming - MQTT.md                |  1 +
 docs/zh/UserGuide/Client/Programming - MQTT.md             |  2 +-
 server/src/assembly/resources/conf/iotdb-engine.properties |  2 ++
 .../main/java/org/apache/iotdb/db/conf/IoTDBConfig.java    | 14 ++++++++++++++
 .../main/java/org/apache/iotdb/db/conf/IoTDBConstant.java  |  1 +
 .../java/org/apache/iotdb/db/conf/IoTDBDescriptor.java     |  4 ++++
 .../main/java/org/apache/iotdb/db/service/MQTTService.java |  4 ++++
 7 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/docs/UserGuide/Client/Programming - MQTT.md b/docs/UserGuide/Client/Programming - MQTT.md
index bd06024..17f1d15 100644
--- a/docs/UserGuide/Client/Programming - MQTT.md	
+++ b/docs/UserGuide/Client/Programming - MQTT.md	
@@ -69,6 +69,7 @@ Configurations are as following:
 | mqtt_port      | the mqtt service binding port    |   1883 |
 | mqtt_handler_pool_size | the handler pool size for handing the mqtt messages      |    1 |
 | mqtt_payload_formatter | the mqtt message payload formatter     |    json |
+| max_mqtt_message_size | the max mqtt message size in byte|   1048576 |
 
 
 ## Examples
diff --git a/docs/zh/UserGuide/Client/Programming - MQTT.md b/docs/zh/UserGuide/Client/Programming - MQTT.md
index 547036b..4197666 100644
--- a/docs/zh/UserGuide/Client/Programming - MQTT.md	
+++ b/docs/zh/UserGuide/Client/Programming - MQTT.md	
@@ -70,7 +70,7 @@ MQTT主题与IoTDB时间序列相对应。
 | mqtt_port      | mqtt服务绑定端口 |   1883 |
 | mqtt_handler_pool_size | 处理mqtt消息的处理程序池大小 |    1 |
 | mqtt_payload_formatter | mqtt消息有效负载格式化程序 |    json |
-
+| max_mqtt_message_size | mqtt消息最大长度(字节)|   1048576 |
 
 ## 例子
 以下是mqtt客户端将消息发送到IoTDB服务器的示例。
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index 61f1ae6..17e6647 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -471,6 +471,8 @@ mqtt_handler_pool_size=1
 # the mqtt message payload formatter.
 mqtt_payload_formatter=json
 
+# max length of mqtt message
+max_mqtt_message_size=1048576
 
 ####################
 ### Authorization Configuration
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 1c29d56..b3e066b 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -93,6 +93,12 @@ public class IoTDBConfig {
   private String mqttPayloadFormatter = "json";
 
   /**
+   * max mqtt message size
+   */
+  private int maxMqttMessageSize = 1048576;
+
+
+  /**
    * Rpc binding address.
    */
   private String rpcAddress = "0.0.0.0";
@@ -1554,6 +1560,14 @@ public class IoTDBConfig {
     this.mqttPayloadFormatter = mqttPayloadFormatter;
   }
 
+  public int getMaxMqttMessageSize() {
+    return maxMqttMessageSize;
+  }
+
+  public void setMaxMqttMessageSize(int maxMqttMessageSize) {
+    this.maxMqttMessageSize = maxMqttMessageSize;
+  }
+
   public int getTagAttributeTotalSize() {
     return tagAttributeTotalSize;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
index 166f38c..e0a287e 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
@@ -93,4 +93,5 @@ public class IoTDBConstant {
   public static final String MQTT_PORT_NAME = "mqtt_port";
   public static final String MQTT_HANDLER_POOL_SIZE_NAME = "mqtt_handler_pool_size";
   public static final String MQTT_PAYLOAD_FORMATTER_NAME = "mqtt_payload_formatter";
+  public static final String MAX_MQTT_MESSAGE_SIZE = "max_mqtt_message_size";
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 790487d..4deb22e 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -411,6 +411,10 @@ public class IoTDBDescriptor {
         conf.setEnableMQTTService(
             Boolean.parseBoolean(properties.getProperty(IoTDBConstant.ENABLE_MQTT)));
       }
+      if (properties.getProperty(IoTDBConstant.MAX_MQTT_MESSAGE_SIZE) != null) {
+        conf.setMaxMqttMessageSize(
+            Integer.parseInt(properties.getProperty(IoTDBConstant.MAX_MQTT_MESSAGE_SIZE)));
+      }
 
       conf.setAuthorizerProvider(properties.getProperty("authorizer_provider_class",
           "org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer"));
diff --git a/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java b/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java
index a024cef..1ee783f 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java
@@ -56,6 +56,10 @@ public class MQTTService implements IService {
     public void startup() {
         IoTDBConfig iotDBConfig = IoTDBDescriptor.getInstance().getConfig();
         IConfig config = createBrokerConfig(iotDBConfig);
+
+        config.setProperty(BrokerConstants.NETTY_MAX_BYTES_PROPERTY_NAME,
+            String.valueOf(IoTDBDescriptor.getInstance().getConfig().getMaxMqttMessageSize()));
+
         List<InterceptHandler> handlers = Lists.newArrayList(new PublishHandler(iotDBConfig));
         IAuthenticator authenticator = new BrokerAuthenticator();