fix: harden jt808 tdengine ingestion
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -11,6 +11,7 @@ import com.lingniu.ingest.sink.mq.KafkaEnvelopeConsumerWorker;
|
||||
import com.lingniu.ingest.sink.mq.SinkMqProperties;
|
||||
import com.lingniu.ingest.tdenginehistory.TdengineHistoryWriter;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
@@ -32,10 +33,17 @@ public class VehicleHistoryKafkaConsumerConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public EventHistoryEnvelopeIngestor eventHistoryEnvelopeIngestor(EventFileStore store,
|
||||
public EventHistoryEnvelopeIngestor eventHistoryEnvelopeIngestor(ObjectProvider<EventFileStore> store,
|
||||
TelemetryEnvelopeRecordMapper mapper,
|
||||
ObjectProvider<TdengineHistoryWriter> writer) {
|
||||
return new EventHistoryEnvelopeIngestor(store, mapper, writer.getIfAvailable());
|
||||
ObjectProvider<TdengineHistoryWriter> writer,
|
||||
@Value("${lingniu.ingest.tdengine-history.telemetry-fields-enabled:false}")
|
||||
boolean telemetryFieldsEnabled) {
|
||||
TdengineHistoryWriter tdengineWriter = writer.getIfAvailable();
|
||||
EventFileStore eventFileStore = store.getIfAvailable();
|
||||
if (eventFileStore == null) {
|
||||
return new EventHistoryEnvelopeIngestor(mapper, tdengineWriter, telemetryFieldsEnabled);
|
||||
}
|
||||
return new EventHistoryEnvelopeIngestor(eventFileStore, mapper, tdengineWriter, telemetryFieldsEnabled);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@@ -62,7 +70,11 @@ public class VehicleHistoryKafkaConsumerConfiguration {
|
||||
List<KafkaEnvelopeConsumerWorker> workers = new KafkaEnvelopeConsumerFactory().createWorkers(
|
||||
Map.of(
|
||||
"eventHistoryEnvelopeConsumerProcessor", processor,
|
||||
"eventHistoryRawEnvelopeConsumerProcessor", rawProcessor),
|
||||
"eventHistoryGb32960EnvelopeConsumerProcessor", processor,
|
||||
"eventHistoryJt808EnvelopeConsumerProcessor", processor,
|
||||
"eventHistoryRawEnvelopeConsumerProcessor", rawProcessor,
|
||||
"eventHistoryGb32960RawEnvelopeConsumerProcessor", rawProcessor,
|
||||
"eventHistoryJt808RawEnvelopeConsumerProcessor", rawProcessor),
|
||||
props);
|
||||
if (workers.isEmpty()) {
|
||||
throw new IllegalStateException("no vehicle history kafka consumer workers created; check consumer bindings");
|
||||
|
||||
@@ -48,25 +48,34 @@ lingniu:
|
||||
auto-offset-reset: ${KAFKA_CONSUMER_AUTO_OFFSET_RESET:earliest}
|
||||
max-poll-records: ${KAFKA_CONSUMER_MAX_POLL_RECORDS:100}
|
||||
max-poll-interval-millis: ${KAFKA_CONSUMER_MAX_POLL_INTERVAL_MS:1800000}
|
||||
concurrency: ${KAFKA_CONSUMER_CONCURRENCY:3}
|
||||
bindings:
|
||||
eventHistoryEnvelopeConsumerProcessor:
|
||||
eventHistoryGb32960EnvelopeConsumerProcessor:
|
||||
enabled: true
|
||||
group-id: ${KAFKA_GROUP_HISTORY_EVENT:${KAFKA_GROUP_HISTORY:vehicle-history}-event}
|
||||
group-id: ${KAFKA_GROUP_HISTORY_GB32960_EVENT:${KAFKA_GROUP_HISTORY:vehicle-history}-gb32960-event}
|
||||
topics:
|
||||
- ${KAFKA_TOPIC_GB32960_EVENT:vehicle.event.gb32960.v1}
|
||||
- ${KAFKA_TOPIC_JT808_EVENT:vehicle.event.jt808.v1}
|
||||
eventHistoryRawEnvelopeConsumerProcessor:
|
||||
eventHistoryJt808EnvelopeConsumerProcessor:
|
||||
enabled: true
|
||||
group-id: ${KAFKA_GROUP_HISTORY_RAW:${KAFKA_GROUP_HISTORY:vehicle-history}}
|
||||
group-id: ${KAFKA_GROUP_HISTORY_JT808_EVENT:${KAFKA_GROUP_HISTORY:vehicle-history}-jt808-event}
|
||||
topics:
|
||||
- ${KAFKA_TOPIC_JT808_EVENT:vehicle.event.jt808.v1}
|
||||
eventHistoryGb32960RawEnvelopeConsumerProcessor:
|
||||
enabled: true
|
||||
group-id: ${KAFKA_GROUP_HISTORY_GB32960_RAW:${KAFKA_GROUP_HISTORY:vehicle-history}-gb32960-raw}
|
||||
topics:
|
||||
- ${KAFKA_TOPIC_GB32960_RAW:vehicle.raw.gb32960.v1}
|
||||
eventHistoryJt808RawEnvelopeConsumerProcessor:
|
||||
enabled: true
|
||||
group-id: ${KAFKA_GROUP_HISTORY_JT808_RAW:${KAFKA_GROUP_HISTORY:vehicle-history}-jt808-raw}
|
||||
topics:
|
||||
- ${KAFKA_TOPIC_JT808_RAW:vehicle.raw.jt808.v1}
|
||||
archive:
|
||||
enabled: ${SINK_ARCHIVE_ENABLED:true}
|
||||
type: local
|
||||
path: ${SINK_ARCHIVE_PATH:./archive/}
|
||||
event-file-store:
|
||||
enabled: ${EVENT_FILE_STORE_ENABLED:true}
|
||||
enabled: ${EVENT_FILE_STORE_ENABLED:false}
|
||||
path: ${EVENT_FILE_STORE_PATH:./target/event-store/}
|
||||
zone-id: ${EVENT_FILE_STORE_ZONE_ID:Asia/Shanghai}
|
||||
batch-size: ${EVENT_FILE_STORE_BATCH_SIZE:500}
|
||||
@@ -82,6 +91,7 @@ lingniu:
|
||||
minimum-idle: ${TDENGINE_MIN_IDLE:0}
|
||||
connection-timeout-millis: ${TDENGINE_CONNECTION_TIMEOUT_MILLIS:5000}
|
||||
initialization-fail-timeout-millis: ${TDENGINE_INITIALIZATION_FAIL_TIMEOUT_MILLIS:-1}
|
||||
telemetry-fields-enabled: ${TDENGINE_TELEMETRY_FIELDS_ENABLED:false}
|
||||
event-history:
|
||||
enabled: true
|
||||
vehicle-state:
|
||||
|
||||
Reference in New Issue
Block a user