From 90791d28bdd88c5f5de5b995639a9b31227ac063 Mon Sep 17 00:00:00 2001 From: lingniu Date: Wed, 1 Jul 2026 14:51:46 +0800 Subject: [PATCH] chore: fix active identity store to mysql --- deploy/local/launchctl/com.lingniu.gb32960.plist.template | 2 -- deploy/local/launchctl/com.lingniu.jt808.plist.template | 2 -- .../local/launchctl/com.lingniu.yutong-mqtt.plist.template | 2 -- deploy/portainer/docker-compose.yml | 1 - docs/operations/vehicle-ingest-tdengine-verification.md | 4 ++-- .../gb32960-ingest-app/src/main/resources/application.yml | 2 +- .../ingest/gb32960app/Gb32960IngestAppDefaultsTest.java | 5 +++-- .../jt808-ingest-app/src/main/resources/application.yml | 2 +- .../lingniu/ingest/jt808app/Jt808IngestAppDefaultsTest.java | 5 +++-- .../historyapp/PortainerComposeResourceLimitsTest.java | 6 ++++-- .../apps/yutong-mqtt-app/src/main/resources/application.yml | 2 +- .../ingest/yutongmqttapp/YutongMqttAppDefaultsTest.java | 5 +++-- 12 files changed, 18 insertions(+), 20 deletions(-) diff --git a/deploy/local/launchctl/com.lingniu.gb32960.plist.template b/deploy/local/launchctl/com.lingniu.gb32960.plist.template index 0c3a4734..4504950b 100644 --- a/deploy/local/launchctl/com.lingniu.gb32960.plist.template +++ b/deploy/local/launchctl/com.lingniu.gb32960.plist.template @@ -36,8 +36,6 @@ vehicle.dlq.gb32960.v1 SINK_ARCHIVE_PATH __SHARED_ARCHIVE_PATH__ - VEHICLE_IDENTITY_STORE - mysql VEHICLE_IDENTITY_MYSQL_TABLE vehicle_identity_binding VEHICLE_IDENTITY_MYSQL_JDBC_URL diff --git a/deploy/local/launchctl/com.lingniu.jt808.plist.template b/deploy/local/launchctl/com.lingniu.jt808.plist.template index 48cba65e..d99af421 100644 --- a/deploy/local/launchctl/com.lingniu.jt808.plist.template +++ b/deploy/local/launchctl/com.lingniu.jt808.plist.template @@ -32,8 +32,6 @@ vehicle.dlq.jt808.v1 SINK_ARCHIVE_PATH __SHARED_ARCHIVE_PATH__ - VEHICLE_IDENTITY_STORE - mysql VEHICLE_IDENTITY_MYSQL_TABLE vehicle_identity_binding VEHICLE_IDENTITY_MYSQL_JDBC_URL diff --git a/deploy/local/launchctl/com.lingniu.yutong-mqtt.plist.template b/deploy/local/launchctl/com.lingniu.yutong-mqtt.plist.template index 3c72f914..25197fdd 100644 --- a/deploy/local/launchctl/com.lingniu.yutong-mqtt.plist.template +++ b/deploy/local/launchctl/com.lingniu.yutong-mqtt.plist.template @@ -62,8 +62,6 @@ vehicle.dlq.mqtt-yutong.v1 SINK_ARCHIVE_PATH __SHARED_ARCHIVE_PATH__ - VEHICLE_IDENTITY_STORE - mysql VEHICLE_IDENTITY_MYSQL_TABLE vehicle_identity_binding VEHICLE_IDENTITY_MYSQL_JDBC_URL diff --git a/deploy/portainer/docker-compose.yml b/deploy/portainer/docker-compose.yml index 9e83e11b..3e9e3daa 100644 --- a/deploy/portainer/docker-compose.yml +++ b/deploy/portainer/docker-compose.yml @@ -34,7 +34,6 @@ x-common-env: &common-env MYSQL_PASSWORD: ${MYSQL_PASSWORD:-} x-identity-mysql-env: &identity-mysql-env - VEHICLE_IDENTITY_STORE: ${VEHICLE_IDENTITY_STORE:-mysql} VEHICLE_IDENTITY_MYSQL_JDBC_URL: ${MYSQL_JDBC_URL:-} VEHICLE_IDENTITY_MYSQL_USERNAME: ${MYSQL_USERNAME:-} VEHICLE_IDENTITY_MYSQL_PASSWORD: ${MYSQL_PASSWORD:-} diff --git a/docs/operations/vehicle-ingest-tdengine-verification.md b/docs/operations/vehicle-ingest-tdengine-verification.md index 768f4d29..0f0613b1 100644 --- a/docs/operations/vehicle-ingest-tdengine-verification.md +++ b/docs/operations/vehicle-ingest-tdengine-verification.md @@ -162,8 +162,8 @@ deploy/local/launchctl/ JT808 注册身份绑定: -- 生产默认使用 `VEHICLE_IDENTITY_STORE=mysql`,不再使用 file/memory 作为运行时身份绑定仓储。 -- 生产需要把 0x0100 注册信息维护到 MySQL 时,设置 `VEHICLE_IDENTITY_STORE=mysql`。 +- 生产身份绑定固定使用 MySQL,不再提供 file/memory/sqlite 运行时切换入口。 +- 生产需要把 0x0100 注册信息维护到 MySQL 时,只需要配置 `VEHICLE_IDENTITY_MYSQL_*` 连接参数。 - 需要提供 `VEHICLE_IDENTITY_MYSQL_JDBC_URL`、`VEHICLE_IDENTITY_MYSQL_USERNAME`、`VEHICLE_IDENTITY_MYSQL_PASSWORD`。 - 服务启动时自动创建 `vehicle_identity_binding` 和 `vehicle_identity_binding_registration` 两张表。`vehicle_identity_binding` 只维护 `plate`、`vin` 两列;`vehicle_identity_binding_registration` 按 `protocol + phone` 保存 JT808 0x0100 注册字段。 - 注册帧无真实 VIN 时也会写入 registration 表,`vin` 默认为 `unknown`。外部系统识别车辆后只需要维护车牌和 VIN,例如:`INSERT INTO vehicle_identity_binding (plate, vin) VALUES ('沪A61559F', 'LNVIN000000000001') ON DUPLICATE KEY UPDATE vin = VALUES(vin);` diff --git a/modules/apps/gb32960-ingest-app/src/main/resources/application.yml b/modules/apps/gb32960-ingest-app/src/main/resources/application.yml index bdd9ec9e..9a2614c5 100644 --- a/modules/apps/gb32960-ingest-app/src/main/resources/application.yml +++ b/modules/apps/gb32960-ingest-app/src/main/resources/application.yml @@ -91,7 +91,7 @@ lingniu: store: redis ttl: ${SESSION_TTL:30m} identity: - store: ${VEHICLE_IDENTITY_STORE:mysql} + store: mysql mysql: jdbc-url: ${VEHICLE_IDENTITY_MYSQL_JDBC_URL:jdbc:mysql://127.0.0.1:3306/lingniu_vehicle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai} username: ${VEHICLE_IDENTITY_MYSQL_USERNAME:root} diff --git a/modules/apps/gb32960-ingest-app/src/test/java/com/lingniu/ingest/gb32960app/Gb32960IngestAppDefaultsTest.java b/modules/apps/gb32960-ingest-app/src/test/java/com/lingniu/ingest/gb32960app/Gb32960IngestAppDefaultsTest.java index f51e0a26..bb70c433 100644 --- a/modules/apps/gb32960-ingest-app/src/test/java/com/lingniu/ingest/gb32960app/Gb32960IngestAppDefaultsTest.java +++ b/modules/apps/gb32960-ingest-app/src/test/java/com/lingniu/ingest/gb32960app/Gb32960IngestAppDefaultsTest.java @@ -47,7 +47,7 @@ class Gb32960IngestAppDefaultsTest { .containsEntry("lingniu.ingest.sink.archive.enabled", "${SINK_ARCHIVE_ENABLED:true}") .containsEntry("lingniu.ingest.sink.archive.path", "${SINK_ARCHIVE_PATH:./archive/}") .containsEntry("lingniu.ingest.session.store", "redis") - .containsEntry("lingniu.ingest.identity.store", "${VEHICLE_IDENTITY_STORE:mysql}") + .containsEntry("lingniu.ingest.identity.store", "mysql") .containsEntry("lingniu.ingest.identity.mysql.table-name", "${VEHICLE_IDENTITY_MYSQL_TABLE:vehicle_identity_bindings}") .containsEntry("management.endpoints.web.exposure.include", @@ -68,7 +68,8 @@ class Gb32960IngestAppDefaultsTest { assertThat(applicationYaml()) .contains("password: ${GB32960_PLATFORM_PWD_HYUNDAI:}") .contains("password: ${GB32960_PLATFORM_PWD_YUEJIN:}") - .doesNotContain("SESSION_STORE"); + .doesNotContain("SESSION_STORE") + .doesNotContain("VEHICLE_IDENTITY_STORE"); } private static Properties applicationProperties() { diff --git a/modules/apps/jt808-ingest-app/src/main/resources/application.yml b/modules/apps/jt808-ingest-app/src/main/resources/application.yml index 26942867..963af7ad 100644 --- a/modules/apps/jt808-ingest-app/src/main/resources/application.yml +++ b/modules/apps/jt808-ingest-app/src/main/resources/application.yml @@ -55,7 +55,7 @@ lingniu: store: redis ttl: ${SESSION_TTL:30m} identity: - store: ${VEHICLE_IDENTITY_STORE:mysql} + store: mysql mysql: jdbc-url: ${VEHICLE_IDENTITY_MYSQL_JDBC_URL:jdbc:mysql://127.0.0.1:3306/lingniu_vehicle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai} username: ${VEHICLE_IDENTITY_MYSQL_USERNAME:root} diff --git a/modules/apps/jt808-ingest-app/src/test/java/com/lingniu/ingest/jt808app/Jt808IngestAppDefaultsTest.java b/modules/apps/jt808-ingest-app/src/test/java/com/lingniu/ingest/jt808app/Jt808IngestAppDefaultsTest.java index a26e48a5..8d8069e0 100644 --- a/modules/apps/jt808-ingest-app/src/test/java/com/lingniu/ingest/jt808app/Jt808IngestAppDefaultsTest.java +++ b/modules/apps/jt808-ingest-app/src/test/java/com/lingniu/ingest/jt808app/Jt808IngestAppDefaultsTest.java @@ -34,7 +34,7 @@ class Jt808IngestAppDefaultsTest { .containsEntry("lingniu.ingest.sink.kafka.topics.raw-archive", "${KAFKA_TOPIC_JT808_RAW:vehicle.raw.jt808.v1}") .containsEntry("lingniu.ingest.sink.kafka.topics.dlq", "${KAFKA_TOPIC_JT808_DLQ:vehicle.dlq.jt808.v1}") .containsEntry("lingniu.ingest.session.store", "redis") - .containsEntry("lingniu.ingest.identity.store", "${VEHICLE_IDENTITY_STORE:mysql}") + .containsEntry("lingniu.ingest.identity.store", "mysql") .containsEntry("lingniu.ingest.identity.mysql.table-name", "${VEHICLE_IDENTITY_MYSQL_TABLE:vehicle_identity_bindings}") .containsEntry("lingniu.ingest.identity.mysql.jdbc-url", @@ -55,7 +55,8 @@ class Jt808IngestAppDefaultsTest { .doesNotContain("event-file-store:") .doesNotContain("vehicle-state:") .doesNotContain("vehicle-stat:") - .doesNotContain("SESSION_STORE"); + .doesNotContain("SESSION_STORE") + .doesNotContain("VEHICLE_IDENTITY_STORE"); } private static Properties applicationProperties() { diff --git a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java index d92fa52e..93baed7d 100644 --- a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java +++ b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java @@ -561,7 +561,8 @@ class PortainerComposeResourceLimitsTest { assertThat(compose) .contains("x-identity-mysql-env: &identity-mysql-env") - .contains("x-redis-session-env: &redis-session-env"); + .contains("x-redis-session-env: &redis-session-env") + .doesNotContain("VEHICLE_IDENTITY_STORE"); assertThat(gb32960Service) .contains("- *identity-mysql-env") .contains("- *redis-session-env"); @@ -630,7 +631,8 @@ class PortainerComposeResourceLimitsTest { .contains("HTTP_PORT\n " + httpPort + "") .contains("NACOS_CONFIG_ENABLED\n false") .contains("MANAGEMENT_HEALTH_REDIS_ENABLED\n false") - .contains("/tmp/lingniu-" + serviceName + "-live/"); + .contains("/tmp/lingniu-" + serviceName + "-live/") + .doesNotContain("VEHICLE_IDENTITY_STORE"); } private static String serviceBlock(String compose, String serviceName) { diff --git a/modules/apps/yutong-mqtt-app/src/main/resources/application.yml b/modules/apps/yutong-mqtt-app/src/main/resources/application.yml index b98bee8c..c1c95eed 100644 --- a/modules/apps/yutong-mqtt-app/src/main/resources/application.yml +++ b/modules/apps/yutong-mqtt-app/src/main/resources/application.yml @@ -61,7 +61,7 @@ lingniu: rate-limit: per-vin-qps: 50 identity: - store: ${VEHICLE_IDENTITY_STORE:mysql} + store: mysql mysql: jdbc-url: ${VEHICLE_IDENTITY_MYSQL_JDBC_URL:jdbc:mysql://127.0.0.1:3306/lingniu_vehicle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai} username: ${VEHICLE_IDENTITY_MYSQL_USERNAME:root} diff --git a/modules/apps/yutong-mqtt-app/src/test/java/com/lingniu/ingest/yutongmqttapp/YutongMqttAppDefaultsTest.java b/modules/apps/yutong-mqtt-app/src/test/java/com/lingniu/ingest/yutongmqttapp/YutongMqttAppDefaultsTest.java index 8c521dc7..8118922a 100644 --- a/modules/apps/yutong-mqtt-app/src/test/java/com/lingniu/ingest/yutongmqttapp/YutongMqttAppDefaultsTest.java +++ b/modules/apps/yutong-mqtt-app/src/test/java/com/lingniu/ingest/yutongmqttapp/YutongMqttAppDefaultsTest.java @@ -33,7 +33,7 @@ class YutongMqttAppDefaultsTest { .containsEntry("lingniu.ingest.sink.kafka.topics.realtime", "${KAFKA_TOPIC_YUTONG_MQTT_EVENT:vehicle.event.mqtt-yutong.v1}") .containsEntry("lingniu.ingest.sink.kafka.topics.raw-archive", "${KAFKA_TOPIC_YUTONG_MQTT_RAW:vehicle.raw.mqtt-yutong.v1}") .containsEntry("lingniu.ingest.sink.kafka.topics.dlq", "${KAFKA_TOPIC_YUTONG_MQTT_DLQ:vehicle.dlq.mqtt-yutong.v1}") - .containsEntry("lingniu.ingest.identity.store", "${VEHICLE_IDENTITY_STORE:mysql}") + .containsEntry("lingniu.ingest.identity.store", "mysql") .containsEntry("lingniu.ingest.identity.mysql.table-name", "${VEHICLE_IDENTITY_MYSQL_TABLE:vehicle_identity_bindings}") .containsEntry("lingniu.ingest.sink.archive.enabled", "${SINK_ARCHIVE_ENABLED:true}") @@ -48,7 +48,8 @@ class YutongMqttAppDefaultsTest { .doesNotContain("event-history:") .doesNotContain("event-file-store:") .doesNotContain("vehicle-state:") - .doesNotContain("vehicle-stat:"); + .doesNotContain("vehicle-stat:") + .doesNotContain("VEHICLE_IDENTITY_STORE"); } private static Properties applicationProperties() {