From dba203037fd33966c32c8f352d3e1867b30c118e Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Tue, 25 Apr 2023 13:07:55 +0200 Subject: [PATCH] Added short doc for component clustering and added upgrade for mqtt node --- application/src/main/data/upgrade/3.4.4/schema_update.sql | 2 +- .../server/common/data/plugin/ComponentClusteringMode.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/application/src/main/data/upgrade/3.4.4/schema_update.sql b/application/src/main/data/upgrade/3.4.4/schema_update.sql index 4cb8c680d7..0dc54a134f 100644 --- a/application/src/main/data/upgrade/3.4.4/schema_update.sql +++ b/application/src/main/data/upgrade/3.4.4/schema_update.sql @@ -615,7 +615,7 @@ $$; ALTER TABLE rule_node ADD COLUMN IF NOT EXISTS singleton_mode bool DEFAULT false; -UPDATE rule_node SET singleton_mode = true WHERE type = 'org.thingsboard.rule.engine.mqtt.azure.TbAzureIotHubNode'; +UPDATE rule_node SET singleton_mode = true WHERE type IN ('org.thingsboard.rule.engine.mqtt.azure.TbAzureIotHubNode', 'org.thingsboard.rule.engine.mqtt.TbMqttNode'); ALTER TABLE component_descriptor ADD COLUMN IF NOT EXISTS clustering_mode varchar(255) DEFAULT 'ENABLED'; diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/plugin/ComponentClusteringMode.java b/common/data/src/main/java/org/thingsboard/server/common/data/plugin/ComponentClusteringMode.java index 32eb43696c..8ebe277e0f 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/plugin/ComponentClusteringMode.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/plugin/ComponentClusteringMode.java @@ -15,6 +15,13 @@ */ package org.thingsboard.server.common.data.plugin; +/** + * The main idea to use this - it's adding the ability to start rule nodes in singleton mode in cluster setup + * (singleton rule node will start in only one Rule Engine instance) + * USER_PREFERENCE - user has ability to configure clustering mode (enable/disable singleton mode in rule node config) + * ENABLE - user doesn't have ability to configure clustering mode (singleton mode is always FALSE in rule node config) + * SINGLETON - user doesn't have ability to configure clustering mode (singleton mode is always TRUE in rule node config) + */ public enum ComponentClusteringMode { USER_PREFERENCE, ENABLED,