Commit 0d7bf40a97332876303583a976d281ca4017ca4e
1 parent
9ab8b6ff
Add clientId parameter to all Kafka producers.
Showing
6 changed files
with
11 additions
and
1 deletions
... | ... | @@ -77,6 +77,7 @@ public class RemoteJsInvokeService extends AbstractJsInvokeService { |
77 | 77 | public void init() { |
78 | 78 | TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<JsInvokeProtos.RemoteJsRequest> requestBuilder = TBKafkaProducerTemplate.builder(); |
79 | 79 | requestBuilder.settings(kafkaSettings); |
80 | + requestBuilder.clientId("producer-js-invoke-" + nodeIdProvider.getNodeId()); | |
80 | 81 | requestBuilder.defaultTopic(requestTopic); |
81 | 82 | requestBuilder.encoder(new RemoteJsRequestEncoder()); |
82 | 83 | requestBuilder.enricher((request, responseTopic, requestId) -> { | ... | ... |
... | ... | @@ -112,6 +112,7 @@ public class RemoteRuleEngineTransportService implements RuleEngineTransportServ |
112 | 112 | public void init() { |
113 | 113 | TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<ToTransportMsg> notificationsProducerBuilder = TBKafkaProducerTemplate.builder(); |
114 | 114 | notificationsProducerBuilder.settings(kafkaSettings); |
115 | + notificationsProducerBuilder.clientId("producer-transport-notification-" + nodeIdProvider.getNodeId()); | |
115 | 116 | notificationsProducerBuilder.encoder(new ToTransportMsgEncoder()); |
116 | 117 | |
117 | 118 | notificationsProducer = notificationsProducerBuilder.build(); | ... | ... |
... | ... | @@ -68,6 +68,7 @@ public class RemoteTransportApiService { |
68 | 68 | |
69 | 69 | TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TransportApiResponseMsg> responseBuilder = TBKafkaProducerTemplate.builder(); |
70 | 70 | responseBuilder.settings(kafkaSettings); |
71 | + responseBuilder.clientId("producer-transport-api-response-" + nodeIdProvider.getNodeId()); | |
71 | 72 | responseBuilder.encoder(new TransportApiResponseEncoder()); |
72 | 73 | |
73 | 74 | TBKafkaConsumerTemplate.TBKafkaConsumerTemplateBuilder<TransportApiRequestMsg> requestBuilder = TBKafkaConsumerTemplate.builder(); | ... | ... |
... | ... | @@ -62,10 +62,13 @@ public class TBKafkaProducerTemplate<T> { |
62 | 62 | |
63 | 63 | @Builder |
64 | 64 | private TBKafkaProducerTemplate(TbKafkaSettings settings, TbKafkaEncoder<T> encoder, TbKafkaEnricher<T> enricher, |
65 | - TbKafkaPartitioner<T> partitioner, String defaultTopic) { | |
65 | + TbKafkaPartitioner<T> partitioner, String defaultTopic, String clientId) { | |
66 | 66 | Properties props = settings.toProps(); |
67 | 67 | props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); |
68 | 68 | props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer"); |
69 | + if (!StringUtils.isEmpty(clientId)) { | |
70 | + props.put(ProducerConfig.CLIENT_ID_CONFIG, clientId); | |
71 | + } | |
69 | 72 | this.settings = settings; |
70 | 73 | this.producer = new KafkaProducer<>(props); |
71 | 74 | this.encoder = encoder; | ... | ... |
... | ... | @@ -104,6 +104,7 @@ public class RemoteTransportService extends AbstractTransportService { |
104 | 104 | |
105 | 105 | TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<TransportApiRequestMsg> requestBuilder = TBKafkaProducerTemplate.builder(); |
106 | 106 | requestBuilder.settings(kafkaSettings); |
107 | + requestBuilder.clientId("producer-transport-api-request-" + nodeIdProvider.getNodeId()); | |
107 | 108 | requestBuilder.defaultTopic(transportApiRequestsTopic); |
108 | 109 | requestBuilder.encoder(new TransportApiRequestEncoder()); |
109 | 110 | |
... | ... | @@ -128,6 +129,7 @@ public class RemoteTransportService extends AbstractTransportService { |
128 | 129 | |
129 | 130 | TBKafkaProducerTemplate.TBKafkaProducerTemplateBuilder<ToRuleEngineMsg> ruleEngineProducerBuilder = TBKafkaProducerTemplate.builder(); |
130 | 131 | ruleEngineProducerBuilder.settings(kafkaSettings); |
132 | + ruleEngineProducerBuilder.clientId("producer-rule-engine-request-" + nodeIdProvider.getNodeId()); | |
131 | 133 | ruleEngineProducerBuilder.defaultTopic(ruleEngineTopic); |
132 | 134 | ruleEngineProducerBuilder.encoder(new ToRuleEngineMsgEncoder()); |
133 | 135 | ruleEngineProducer = ruleEngineProducerBuilder.build(); | ... | ... |
... | ... | @@ -25,6 +25,7 @@ import org.thingsboard.server.common.msg.TbMsgMetaData; |
25 | 25 | |
26 | 26 | import java.util.Properties; |
27 | 27 | import java.util.concurrent.ExecutionException; |
28 | +import java.util.concurrent.atomic.AtomicInteger; | |
28 | 29 | |
29 | 30 | @Slf4j |
30 | 31 | @RuleNode( |
... | ... | @@ -54,6 +55,7 @@ public class TbKafkaNode implements TbNode { |
54 | 55 | public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException { |
55 | 56 | this.config = TbNodeUtils.convert(configuration, TbKafkaNodeConfiguration.class); |
56 | 57 | Properties properties = new Properties(); |
58 | + properties.put(ProducerConfig.CLIENT_ID_CONFIG, "producer-tb-kafka-node-" + ctx.getSelfId().getId().toString() + "-" + ctx.getNodeId()); | |
57 | 59 | properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, config.getBootstrapServers()); |
58 | 60 | properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, config.getValueSerializer()); |
59 | 61 | properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, config.getKeySerializer()); | ... | ... |