chore: fix active identity store to mysql

This commit is contained in:
lingniu
2026-07-01 14:51:46 +08:00
parent 3795e43a6a
commit 90791d28bd
12 changed files with 18 additions and 20 deletions

View File

@@ -36,8 +36,6 @@
<string>vehicle.dlq.gb32960.v1</string>
<key>SINK_ARCHIVE_PATH</key>
<string>__SHARED_ARCHIVE_PATH__</string>
<key>VEHICLE_IDENTITY_STORE</key>
<string>mysql</string>
<key>VEHICLE_IDENTITY_MYSQL_TABLE</key>
<string>vehicle_identity_binding</string>
<key>VEHICLE_IDENTITY_MYSQL_JDBC_URL</key>

View File

@@ -32,8 +32,6 @@
<string>vehicle.dlq.jt808.v1</string>
<key>SINK_ARCHIVE_PATH</key>
<string>__SHARED_ARCHIVE_PATH__</string>
<key>VEHICLE_IDENTITY_STORE</key>
<string>mysql</string>
<key>VEHICLE_IDENTITY_MYSQL_TABLE</key>
<string>vehicle_identity_binding</string>
<key>VEHICLE_IDENTITY_MYSQL_JDBC_URL</key>

View File

@@ -62,8 +62,6 @@
<string>vehicle.dlq.mqtt-yutong.v1</string>
<key>SINK_ARCHIVE_PATH</key>
<string>__SHARED_ARCHIVE_PATH__</string>
<key>VEHICLE_IDENTITY_STORE</key>
<string>mysql</string>
<key>VEHICLE_IDENTITY_MYSQL_TABLE</key>
<string>vehicle_identity_binding</string>
<key>VEHICLE_IDENTITY_MYSQL_JDBC_URL</key>

View File

@@ -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:-}

View File

@@ -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);`

View File

@@ -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}

View File

@@ -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() {

View File

@@ -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}

View File

@@ -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() {

View File

@@ -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("<key>HTTP_PORT</key>\n <string>" + httpPort + "</string>")
.contains("<key>NACOS_CONFIG_ENABLED</key>\n <string>false</string>")
.contains("<key>MANAGEMENT_HEALTH_REDIS_ENABLED</key>\n <string>false</string>")
.contains("/tmp/lingniu-" + serviceName + "-live/");
.contains("/tmp/lingniu-" + serviceName + "-live/")
.doesNotContain("<key>VEHICLE_IDENTITY_STORE</key>");
}
private static String serviceBlock(String compose, String serviceName) {

View File

@@ -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}

View File

@@ -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() {