From e67c3e8b7125453c24398eff21934531c04f55e3 Mon Sep 17 00:00:00 2001 From: lingniu Date: Wed, 1 Jul 2026 05:32:33 +0800 Subject: [PATCH] refactor: remove archive sink from history runtime --- modules/apps/vehicle-history-app/pom.xml | 4 ---- .../src/main/resources/application.yml | 4 +--- .../VehicleHistoryAppCompositionTest.java | 13 +++---------- .../historyapp/VehicleHistoryAppDefaultsTest.java | 5 ++++- modules/services/event-history-service/pom.xml | 4 ---- .../config/EventHistoryAutoConfiguration.java | 8 +++----- .../config/EventHistoryAutoConfigurationTest.java | 9 +++------ 7 files changed, 14 insertions(+), 33 deletions(-) diff --git a/modules/apps/vehicle-history-app/pom.xml b/modules/apps/vehicle-history-app/pom.xml index 34a6dd5d..07c1ea71 100644 --- a/modules/apps/vehicle-history-app/pom.xml +++ b/modules/apps/vehicle-history-app/pom.xml @@ -25,10 +25,6 @@ com.lingniu.ingest sink-mq - - com.lingniu.ingest - sink-archive - com.lingniu.ingest tdengine-history-store diff --git a/modules/apps/vehicle-history-app/src/main/resources/application.yml b/modules/apps/vehicle-history-app/src/main/resources/application.yml index b53e0548..17083629 100644 --- a/modules/apps/vehicle-history-app/src/main/resources/application.yml +++ b/modules/apps/vehicle-history-app/src/main/resources/application.yml @@ -81,9 +81,7 @@ lingniu: topics: - ${KAFKA_TOPIC_YUTONG_MQTT_RAW:vehicle.raw.mqtt-yutong.v1} archive: - enabled: ${SINK_ARCHIVE_ENABLED:true} - type: local - path: ${SINK_ARCHIVE_PATH:./archive/} + enabled: false tdengine-history: enabled: ${TDENGINE_HISTORY_ENABLED:false} database: ${TDENGINE_HISTORY_DATABASE:vehicle_history} diff --git a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppCompositionTest.java b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppCompositionTest.java index d5638d2f..6cca1c95 100644 --- a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppCompositionTest.java +++ b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppCompositionTest.java @@ -15,9 +15,6 @@ import com.lingniu.ingest.eventhistory.TelemetryFieldHistoryController; import com.lingniu.ingest.protocol.gb32960.codec.Gb32960MessageDecoder; import com.lingniu.ingest.protocol.gb32960.config.Gb32960AutoConfiguration; import com.lingniu.ingest.protocol.gb32960.inbound.Gb32960NettyServer; -import com.lingniu.ingest.sink.archive.ArchiveStore; -import com.lingniu.ingest.sink.archive.RawArchiveEventSink; -import com.lingniu.ingest.sink.archive.config.SinkArchiveAutoConfiguration; import com.lingniu.ingest.sink.mq.KafkaEnvelopeDeadLetterSink; import com.lingniu.ingest.sink.mq.KafkaEventSink; import com.lingniu.ingest.sink.mq.SinkMqProperties; @@ -87,10 +84,9 @@ class VehicleHistoryAppCompositionTest { } @Test - void createsTdengineHistoryStorageAndQueryBeansWithoutGb32960TcpServerOrEventFileStore() { + void createsTdengineHistoryStorageAndQueryBeansWithoutGb32960TcpServerEventFileStoreOrLocalArchiveSink() { new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of( - SinkArchiveAutoConfiguration.class, TdengineHistoryAutoConfiguration.class, SinkMqAutoConfiguration.class, Gb32960AutoConfiguration.class, @@ -99,9 +95,6 @@ class VehicleHistoryAppCompositionTest { .withAllowBeanDefinitionOverriding(true) .withBean("kafkaProducer", KafkaProducer.class, VehicleHistoryAppCompositionTest::kafkaProducer) .withPropertyValues( - "lingniu.ingest.sink.archive.enabled=true", - "lingniu.ingest.sink.archive.type=local", - "lingniu.ingest.sink.archive.path=" + tempDir.resolve("archive"), "lingniu.ingest.tdengine-history.enabled=true", "lingniu.ingest.tdengine-history.database=vehicle_history_test", "lingniu.ingest.event-history.enabled=true", @@ -114,8 +107,8 @@ class VehicleHistoryAppCompositionTest { "lingniu.ingest.vehicle-state.enabled=false", "lingniu.ingest.vehicle-stat.enabled=false") .run(context -> { - assertThat(context).hasSingleBean(ArchiveStore.class); - assertThat(context).hasSingleBean(RawArchiveEventSink.class); + assertThat(context).doesNotHaveBean("archiveStore"); + assertThat(context).doesNotHaveBean("rawArchiveEventSink"); assertThat(context).doesNotHaveBean("eventFileStore"); assertThat(context).doesNotHaveBean("eventFileStoreSink"); assertThat(context).hasSingleBean(TdengineHistorySchema.class); diff --git a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppDefaultsTest.java b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppDefaultsTest.java index 6c066bf2..bb8b1632 100644 --- a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppDefaultsTest.java +++ b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/VehicleHistoryAppDefaultsTest.java @@ -22,7 +22,7 @@ class VehicleHistoryAppDefaultsTest { .containsEntry("spring.cloud.nacos.config.server-addr", "${NACOS_SERVER_ADDR:127.0.0.1:8848}") .containsEntry("lingniu.ingest.gb32960.enabled", true) .containsEntry("lingniu.ingest.gb32960.server.enabled", false) - .containsEntry("lingniu.ingest.sink.archive.enabled", "${SINK_ARCHIVE_ENABLED:true}") + .containsEntry("lingniu.ingest.sink.archive.enabled", false) .containsEntry("lingniu.ingest.tdengine-history.enabled", "${TDENGINE_HISTORY_ENABLED:false}") .containsEntry("lingniu.ingest.tdengine-history.database", "${TDENGINE_HISTORY_DATABASE:vehicle_history}") .containsEntry( @@ -104,6 +104,9 @@ class VehicleHistoryAppDefaultsTest { assertThat(properties.stringPropertyNames()) .noneMatch(name -> name.startsWith("lingniu.ingest.event-file-store.")); + assertThat(properties.stringPropertyNames()) + .noneMatch(name -> name.equals("lingniu.ingest.sink.archive.type") + || name.equals("lingniu.ingest.sink.archive.path")); } private static Properties applicationProperties() { diff --git a/modules/services/event-history-service/pom.xml b/modules/services/event-history-service/pom.xml index f50a394a..6733b988 100644 --- a/modules/services/event-history-service/pom.xml +++ b/modules/services/event-history-service/pom.xml @@ -24,10 +24,6 @@ com.lingniu.ingest sink-mq - - com.lingniu.ingest - sink-archive - com.lingniu.ingest protocol-gb32960 diff --git a/modules/services/event-history-service/src/main/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfiguration.java b/modules/services/event-history-service/src/main/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfiguration.java index 77f8a94d..03b2b838 100644 --- a/modules/services/event-history-service/src/main/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfiguration.java +++ b/modules/services/event-history-service/src/main/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfiguration.java @@ -15,8 +15,6 @@ import com.lingniu.ingest.eventhistory.TelemetryFieldHistoryController; import com.lingniu.ingest.eventhistory.TelemetryEnvelopeRecordMapper; import com.lingniu.ingest.protocol.gb32960.codec.Gb32960MessageDecoder; import com.lingniu.ingest.protocol.gb32960.config.Gb32960AutoConfiguration; -import com.lingniu.ingest.sink.archive.config.SinkArchiveAutoConfiguration; -import com.lingniu.ingest.sink.archive.config.SinkArchiveProperties; import com.lingniu.ingest.tdenginehistory.config.TdengineHistoryAutoConfiguration; import com.lingniu.ingest.tdenginehistory.TdengineHistoryReader; import com.lingniu.ingest.tdenginehistory.TdengineHistoryWriter; @@ -47,7 +45,6 @@ import java.nio.file.Path; @AutoConfiguration @AutoConfigureAfter({ Gb32960AutoConfiguration.class, - SinkArchiveAutoConfiguration.class, TdengineHistoryAutoConfiguration.class }) @ConditionalOnProperty(prefix = "lingniu.ingest.event-history", name = "enabled", havingValue = "true") @@ -108,10 +105,11 @@ public class EventHistoryAutoConfiguration { public Gb32960DecodedFrameService gb32960DecodedFrameService(ObjectProvider store, ObjectProvider reader, Gb32960MessageDecoder decoder, - SinkArchiveProperties archiveProperties) { + @Value("${lingniu.ingest.event-history.archive-path:${SINK_ARCHIVE_PATH:./archive/}}") + String archivePath) { // 优先使用 EventFileStore 索引;TDengine-only 高吞吐运行时可直接从 raw_frames 找 rawUri。 return new Gb32960DecodedFrameService(store.getIfAvailable(), reader.getIfAvailable(), - decoder, archiveRoot(archiveProperties.getPath()), null); + decoder, archiveRoot(archivePath), null); } @Bean diff --git a/modules/services/event-history-service/src/test/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfigurationTest.java b/modules/services/event-history-service/src/test/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfigurationTest.java index 6b52d61d..9f6f5b9a 100644 --- a/modules/services/event-history-service/src/test/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfigurationTest.java +++ b/modules/services/event-history-service/src/test/java/com/lingniu/ingest/eventhistory/config/EventHistoryAutoConfigurationTest.java @@ -16,7 +16,6 @@ import com.lingniu.ingest.eventhistory.TelemetryEnvelopeRecordMapper; import com.lingniu.ingest.protocol.gb32960.codec.Gb32960MessageDecoder; import com.lingniu.ingest.tdenginehistory.TdengineHistoryReader; import com.lingniu.ingest.tdenginehistory.TdengineHistoryWriter; -import com.lingniu.ingest.sink.archive.config.SinkArchiveProperties; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -62,14 +61,13 @@ class EventHistoryAutoConfigurationTest { } @Test - void createsGb32960FrameBeansWhenDecoderAndArchivePropertiesExist() { + void createsGb32960FrameBeansWhenDecoderExists() { contextRunner .withPropertyValues( "lingniu.ingest.event-history.enabled=true", "lingniu.ingest.event-history.api.specialized-enabled=true", - "lingniu.ingest.sink.archive.path=/tmp/lingniu-test-archive") + "lingniu.ingest.event-history.archive-path=/tmp/lingniu-test-archive") .withBean(Gb32960MessageDecoder.class, () -> mock(Gb32960MessageDecoder.class)) - .withBean(SinkArchiveProperties.class, SinkArchiveProperties::new) .run(context -> { assertThat(context).hasSingleBean(Gb32960DecodedFrameService.class); assertThat(context).hasSingleBean(Gb32960FrameController.class); @@ -83,10 +81,9 @@ class EventHistoryAutoConfigurationTest { .withPropertyValues( "lingniu.ingest.event-history.enabled=true", "lingniu.ingest.event-history.api.specialized-enabled=true", - "lingniu.ingest.sink.archive.path=/tmp/lingniu-test-archive") + "lingniu.ingest.event-history.archive-path=/tmp/lingniu-test-archive") .withBean(Gb32960MessageDecoder.class, () -> mock(Gb32960MessageDecoder.class)) .withBean(TdengineHistoryReader.class, () -> mock(TdengineHistoryReader.class)) - .withBean(SinkArchiveProperties.class, SinkArchiveProperties::new) .run(context -> { assertThat(context).doesNotHaveBean(EventFileStore.class); assertThat(context).hasSingleBean(Gb32960DecodedFrameService.class);