|
|
@ -46,6 +46,7 @@ import org.thingsboard.server.queue.kafka.TbKafkaTopicConfigs; |
|
|
import org.thingsboard.server.queue.settings.TbQueueCoreSettings; |
|
|
import org.thingsboard.server.queue.settings.TbQueueCoreSettings; |
|
|
import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; |
|
|
import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings; |
|
|
import org.thingsboard.server.queue.settings.TbQueueRuleEngineSettings; |
|
|
import org.thingsboard.server.queue.settings.TbQueueRuleEngineSettings; |
|
|
|
|
|
import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSettings; |
|
|
import org.thingsboard.server.queue.settings.TbRuleEngineQueueConfiguration; |
|
|
import org.thingsboard.server.queue.settings.TbRuleEngineQueueConfiguration; |
|
|
|
|
|
|
|
|
import javax.annotation.PreDestroy; |
|
|
import javax.annotation.PreDestroy; |
|
|
@ -63,6 +64,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
private final TbQueueRuleEngineSettings ruleEngineSettings; |
|
|
private final TbQueueRuleEngineSettings ruleEngineSettings; |
|
|
private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; |
|
|
private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; |
|
|
private final TbKafkaConsumerStatsService consumerStatsService; |
|
|
private final TbKafkaConsumerStatsService consumerStatsService; |
|
|
|
|
|
private final TbQueueTransportNotificationSettings transportNotificationSettings; |
|
|
|
|
|
|
|
|
private final TbQueueAdmin coreAdmin; |
|
|
private final TbQueueAdmin coreAdmin; |
|
|
private final TbQueueAdmin ruleEngineAdmin; |
|
|
private final TbQueueAdmin ruleEngineAdmin; |
|
|
@ -77,6 +79,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
TbQueueRuleEngineSettings ruleEngineSettings, |
|
|
TbQueueRuleEngineSettings ruleEngineSettings, |
|
|
TbQueueRemoteJsInvokeSettings jsInvokeSettings, |
|
|
TbQueueRemoteJsInvokeSettings jsInvokeSettings, |
|
|
TbKafkaConsumerStatsService consumerStatsService, |
|
|
TbKafkaConsumerStatsService consumerStatsService, |
|
|
|
|
|
TbQueueTransportNotificationSettings transportNotificationSettings, |
|
|
TbKafkaTopicConfigs kafkaTopicConfigs) { |
|
|
TbKafkaTopicConfigs kafkaTopicConfigs) { |
|
|
this.partitionService = partitionService; |
|
|
this.partitionService = partitionService; |
|
|
this.kafkaSettings = kafkaSettings; |
|
|
this.kafkaSettings = kafkaSettings; |
|
|
@ -85,6 +88,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
this.ruleEngineSettings = ruleEngineSettings; |
|
|
this.ruleEngineSettings = ruleEngineSettings; |
|
|
this.jsInvokeSettings = jsInvokeSettings; |
|
|
this.jsInvokeSettings = jsInvokeSettings; |
|
|
this.consumerStatsService = consumerStatsService; |
|
|
this.consumerStatsService = consumerStatsService; |
|
|
|
|
|
this.transportNotificationSettings = transportNotificationSettings; |
|
|
|
|
|
|
|
|
this.coreAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getCoreConfigs()); |
|
|
this.coreAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getCoreConfigs()); |
|
|
this.ruleEngineAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getRuleEngineConfigs()); |
|
|
this.ruleEngineAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getRuleEngineConfigs()); |
|
|
@ -98,8 +102,8 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToTransportMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToTransportMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("tb-rule-engine-transport-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("tb-rule-engine-transport-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(transportNotificationSettings.getNotificationsTopic()); |
|
|
requestBuilder.admin(coreAdmin); |
|
|
requestBuilder.admin(notificationAdmin); |
|
|
return requestBuilder.build(); |
|
|
return requestBuilder.build(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -108,8 +112,8 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("tb-rule-engine-to-rule-engine-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("tb-rule-engine-to-rule-engine-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); |
|
|
requestBuilder.admin(coreAdmin); |
|
|
requestBuilder.admin(ruleEngineAdmin); |
|
|
return requestBuilder.build(); |
|
|
return requestBuilder.build(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -119,11 +123,10 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("tb-rule-engine-to-rule-engine-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("tb-rule-engine-to-rule-engine-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); |
|
|
requestBuilder.admin(ruleEngineAdmin); |
|
|
requestBuilder.admin(notificationAdmin); |
|
|
return requestBuilder.build(); |
|
|
return requestBuilder.build(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToCoreMsg>> createTbCoreMsgProducer() { |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToCoreMsg>> createTbCoreMsgProducer() { |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToCoreMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToCoreMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
@ -150,7 +153,7 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("tb-rule-engine-to-core-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("tb-rule-engine-to-core-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
requestBuilder.admin(coreAdmin); |
|
|
requestBuilder.admin(notificationAdmin); |
|
|
return requestBuilder.build(); |
|
|
return requestBuilder.build(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -239,5 +242,8 @@ public class KafkaTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory { |
|
|
if (notificationAdmin != null) { |
|
|
if (notificationAdmin != null) { |
|
|
notificationAdmin.destroy(); |
|
|
notificationAdmin.destroy(); |
|
|
} |
|
|
} |
|
|
|
|
|
if (fwUpdatesAdmin != null) { |
|
|
|
|
|
fwUpdatesAdmin.destroy(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|