|
|
@ -37,9 +37,9 @@ import org.thingsboard.server.queue.common.TbProtoJsQueueMsg; |
|
|
import org.thingsboard.server.queue.common.TbProtoQueueMsg; |
|
|
import org.thingsboard.server.queue.common.TbProtoQueueMsg; |
|
|
import org.thingsboard.server.queue.discovery.PartitionService; |
|
|
import org.thingsboard.server.queue.discovery.PartitionService; |
|
|
import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; |
|
|
import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; |
|
|
import org.thingsboard.server.queue.kafka.TBKafkaAdmin; |
|
|
import org.thingsboard.server.queue.kafka.TbKafkaAdmin; |
|
|
import org.thingsboard.server.queue.kafka.TBKafkaConsumerTemplate; |
|
|
import org.thingsboard.server.queue.kafka.TbKafkaConsumerTemplate; |
|
|
import org.thingsboard.server.queue.kafka.TBKafkaProducerTemplate; |
|
|
import org.thingsboard.server.queue.kafka.TbKafkaProducerTemplate; |
|
|
import org.thingsboard.server.queue.kafka.TbKafkaSettings; |
|
|
import org.thingsboard.server.queue.kafka.TbKafkaSettings; |
|
|
import org.thingsboard.server.queue.kafka.TbKafkaTopicConfigs; |
|
|
import org.thingsboard.server.queue.kafka.TbKafkaTopicConfigs; |
|
|
import org.thingsboard.server.queue.settings.TbQueueCoreSettings; |
|
|
import org.thingsboard.server.queue.settings.TbQueueCoreSettings; |
|
|
@ -87,16 +87,16 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
this.transportNotificationSettings = transportNotificationSettings; |
|
|
this.transportNotificationSettings = transportNotificationSettings; |
|
|
this.jsInvokeSettings = jsInvokeSettings; |
|
|
this.jsInvokeSettings = jsInvokeSettings; |
|
|
|
|
|
|
|
|
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()); |
|
|
this.jsExecutorAdmin = new TBKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getJsExecutorConfigs()); |
|
|
this.jsExecutorAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getJsExecutorConfigs()); |
|
|
this.transportApiAdmin = new TBKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getTransportApiConfigs()); |
|
|
this.transportApiAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getTransportApiConfigs()); |
|
|
this.notificationAdmin = new TBKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getNotificationsConfigs()); |
|
|
this.notificationAdmin = new TbKafkaAdmin(kafkaSettings, kafkaTopicConfigs.getNotificationsConfigs()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToTransportMsg>> createTransportNotificationsMsgProducer() { |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToTransportMsg>> createTransportNotificationsMsgProducer() { |
|
|
TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToTransportMsg>> requestBuilder = TBKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToTransportMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("monolith-transport-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("monolith-transport-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(transportNotificationSettings.getNotificationsTopic()); |
|
|
requestBuilder.defaultTopic(transportNotificationSettings.getNotificationsTopic()); |
|
|
@ -106,7 +106,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToRuleEngineMsg>> createRuleEngineMsgProducer() { |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToRuleEngineMsg>> createRuleEngineMsgProducer() { |
|
|
TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineMsg>> requestBuilder = TBKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("monolith-rule-engine-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("monolith-rule-engine-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); |
|
|
@ -116,7 +116,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> createRuleEngineNotificationsMsgProducer() { |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> createRuleEngineNotificationsMsgProducer() { |
|
|
TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> requestBuilder = TBKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("monolith-rule-engine-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("monolith-rule-engine-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(ruleEngineSettings.getTopic()); |
|
|
@ -126,7 +126,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@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(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("monolith-core-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("monolith-core-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
@ -136,7 +136,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToCoreNotificationMsg>> createTbCoreNotificationsMsgProducer() { |
|
|
public TbQueueProducer<TbProtoQueueMsg<ToCoreNotificationMsg>> createTbCoreNotificationsMsgProducer() { |
|
|
TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToCoreNotificationMsg>> requestBuilder = TBKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToCoreNotificationMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("monolith-core-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("monolith-core-notifications-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
requestBuilder.defaultTopic(coreSettings.getTopic()); |
|
|
@ -147,7 +147,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
@Override |
|
|
@Override |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToRuleEngineMsg>> createToRuleEngineMsgConsumer(TbRuleEngineQueueConfiguration configuration) { |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToRuleEngineMsg>> createToRuleEngineMsgConsumer(TbRuleEngineQueueConfiguration configuration) { |
|
|
String queueName = configuration.getName(); |
|
|
String queueName = configuration.getName(); |
|
|
TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineMsg>> consumerBuilder = TBKafkaConsumerTemplate.builder(); |
|
|
TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.topic(ruleEngineSettings.getTopic()); |
|
|
consumerBuilder.topic(ruleEngineSettings.getTopic()); |
|
|
consumerBuilder.clientId("re-" + queueName + "-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
consumerBuilder.clientId("re-" + queueName + "-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
@ -159,7 +159,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> createToRuleEngineNotificationsMsgConsumer() { |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> createToRuleEngineNotificationsMsgConsumer() { |
|
|
TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> consumerBuilder = TBKafkaConsumerTemplate.builder(); |
|
|
TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.topic(partitionService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); |
|
|
consumerBuilder.topic(partitionService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName()); |
|
|
consumerBuilder.clientId("monolith-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
consumerBuilder.clientId("monolith-rule-engine-notifications-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
@ -171,7 +171,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToCoreMsg>> createToCoreMsgConsumer() { |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToCoreMsg>> createToCoreMsgConsumer() { |
|
|
TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToCoreMsg>> consumerBuilder = TBKafkaConsumerTemplate.builder(); |
|
|
TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToCoreMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.topic(coreSettings.getTopic()); |
|
|
consumerBuilder.topic(coreSettings.getTopic()); |
|
|
consumerBuilder.clientId("monolith-core-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
consumerBuilder.clientId("monolith-core-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
@ -183,7 +183,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToCoreNotificationMsg>> createToCoreNotificationsMsgConsumer() { |
|
|
public TbQueueConsumer<TbProtoQueueMsg<ToCoreNotificationMsg>> createToCoreNotificationsMsgConsumer() { |
|
|
TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToCoreNotificationMsg>> consumerBuilder = TBKafkaConsumerTemplate.builder(); |
|
|
TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToCoreNotificationMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.topic(partitionService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); |
|
|
consumerBuilder.topic(partitionService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName()); |
|
|
consumerBuilder.clientId("monolith-core-notifications-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
consumerBuilder.clientId("monolith-core-notifications-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
@ -195,7 +195,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueConsumer<TbProtoQueueMsg<TransportApiRequestMsg>> createTransportApiRequestConsumer() { |
|
|
public TbQueueConsumer<TbProtoQueueMsg<TransportApiRequestMsg>> createTransportApiRequestConsumer() { |
|
|
TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TbProtoQueueMsg<TransportApiRequestMsg>> consumerBuilder = TBKafkaConsumerTemplate.builder(); |
|
|
TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<TransportApiRequestMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.settings(kafkaSettings); |
|
|
consumerBuilder.topic(transportApiSettings.getRequestsTopic()); |
|
|
consumerBuilder.topic(transportApiSettings.getRequestsTopic()); |
|
|
consumerBuilder.clientId("monolith-transport-api-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
consumerBuilder.clientId("monolith-transport-api-consumer-" + serviceInfoProvider.getServiceId()); |
|
|
@ -207,7 +207,7 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public TbQueueProducer<TbProtoQueueMsg<TransportApiResponseMsg>> createTransportApiResponseProducer() { |
|
|
public TbQueueProducer<TbProtoQueueMsg<TransportApiResponseMsg>> createTransportApiResponseProducer() { |
|
|
TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TbProtoQueueMsg<TransportApiResponseMsg>> requestBuilder = TBKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<TransportApiResponseMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("monolith-transport-api-producer-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("monolith-transport-api-producer-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(transportApiSettings.getResponsesTopic()); |
|
|
requestBuilder.defaultTopic(transportApiSettings.getResponsesTopic()); |
|
|
@ -218,13 +218,13 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi |
|
|
@Override |
|
|
@Override |
|
|
@Bean |
|
|
@Bean |
|
|
public TbQueueRequestTemplate<TbProtoJsQueueMsg<JsInvokeProtos.RemoteJsRequest>, TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> createRemoteJsRequestTemplate() { |
|
|
public TbQueueRequestTemplate<TbProtoJsQueueMsg<JsInvokeProtos.RemoteJsRequest>, TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> createRemoteJsRequestTemplate() { |
|
|
TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TbProtoJsQueueMsg<JsInvokeProtos.RemoteJsRequest>> requestBuilder = TBKafkaProducerTemplate.builder(); |
|
|
TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoJsQueueMsg<JsInvokeProtos.RemoteJsRequest>> requestBuilder = TbKafkaProducerTemplate.builder(); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.settings(kafkaSettings); |
|
|
requestBuilder.clientId("producer-js-invoke-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.clientId("producer-js-invoke-" + serviceInfoProvider.getServiceId()); |
|
|
requestBuilder.defaultTopic(jsInvokeSettings.getRequestTopic()); |
|
|
requestBuilder.defaultTopic(jsInvokeSettings.getRequestTopic()); |
|
|
requestBuilder.admin(jsExecutorAdmin); |
|
|
requestBuilder.admin(jsExecutorAdmin); |
|
|
|
|
|
|
|
|
TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> responseBuilder = TBKafkaConsumerTemplate.builder(); |
|
|
TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<JsInvokeProtos.RemoteJsResponse>> responseBuilder = TbKafkaConsumerTemplate.builder(); |
|
|
responseBuilder.settings(kafkaSettings); |
|
|
responseBuilder.settings(kafkaSettings); |
|
|
responseBuilder.topic(jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId()); |
|
|
responseBuilder.topic(jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId()); |
|
|
responseBuilder.clientId("js-" + serviceInfoProvider.getServiceId()); |
|
|
responseBuilder.clientId("js-" + serviceInfoProvider.getServiceId()); |
|
|
|