chore: enforce kafka-only messaging surface
This commit is contained in:
@@ -43,4 +43,4 @@ MYSQL_PASSWORD=<password>
|
|||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
Do not create or write a protocol-specific JT808 daily-mileage table. Do not add MQ, distance accumulation, integral calculation, Redis state, or memory state back into this path unless the mileage definition changes again.
|
Do not create or write a protocol-specific JT808 daily-mileage table. Do not add another message backbone, distance accumulation, integral calculation, Redis state, or memory state back into this path unless the mileage definition changes again.
|
||||||
|
|||||||
@@ -382,12 +382,39 @@ class MavenModuleProfileTest {
|
|||||||
String description = firstDirectChild(pom.getDocumentElement(), "description").getTextContent();
|
String description = firstDirectChild(pom.getDocumentElement(), "description").getTextContent();
|
||||||
|
|
||||||
assertThat(description)
|
assertThat(description)
|
||||||
|
.contains("只支持 Kafka")
|
||||||
.contains("Java 25")
|
.contains("Java 25")
|
||||||
.contains("Spring Boot " + projectProperty(pom, "spring-boot.version"))
|
.contains("Spring Boot " + projectProperty(pom, "spring-boot.version"))
|
||||||
.contains("Netty " + projectProperty(pom, "netty.version"))
|
.contains("Netty " + projectProperty(pom, "netty.version"))
|
||||||
.doesNotContain("Spring Boot 3.4");
|
.doesNotContain("Spring Boot 3.4");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void defaultProductionSurfaceOnlySupportsKafkaAsMessageBackbone() throws Exception {
|
||||||
|
List<Path> productionSurface = List.of(
|
||||||
|
repositoryRoot().resolve("README.md"),
|
||||||
|
repositoryRoot().resolve("pom.xml"),
|
||||||
|
repositoryRoot().resolve("deploy/portainer/docker-compose.yml"),
|
||||||
|
repositoryRoot().resolve("deploy/local/launchctl/README.md"),
|
||||||
|
repositoryRoot().resolve("docs/operations/gb32960-service-split-runbook.md"),
|
||||||
|
repositoryRoot().resolve("docs/operations/vehicle-ingest-tdengine-verification.md"),
|
||||||
|
repositoryRoot().resolve("docs/operations/jt808-daily-mileage-runbook.md"),
|
||||||
|
repositoryRoot().resolve("docs/target-architecture.md"));
|
||||||
|
|
||||||
|
for (Path path : productionSurface) {
|
||||||
|
String text = Files.readString(path);
|
||||||
|
|
||||||
|
assertThat(text)
|
||||||
|
.as(path.toString())
|
||||||
|
.doesNotContain("sink-mq")
|
||||||
|
.doesNotContain("RabbitMQ")
|
||||||
|
.doesNotContain("RocketMQ")
|
||||||
|
.doesNotContain("Pulsar")
|
||||||
|
.doesNotContain("AMQP")
|
||||||
|
.doesNotContain("其他 MQ 后端");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void architectureDecisionsMatchCurrentDefaultProductionSurface() throws Exception {
|
void architectureDecisionsMatchCurrentDefaultProductionSurface() throws Exception {
|
||||||
String decisions = Files.readString(repositoryRoot().resolve("DECISIONS.md"));
|
String decisions = Files.readString(repositoryRoot().resolve("DECISIONS.md"));
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -12,7 +12,7 @@
|
|||||||
<name>lingniu-vehicle-ingest</name>
|
<name>lingniu-vehicle-ingest</name>
|
||||||
<description>
|
<description>
|
||||||
羚牛车辆数据接入平台 v2。
|
羚牛车辆数据接入平台 v2。
|
||||||
模块化原子能力 + 协议解耦 + 业务/实时解耦 + 数据出 Kafka 不落业务库。
|
模块化原子能力 + 协议解耦 + 业务/实时解耦 + 生产链路只支持 Kafka。
|
||||||
Java 25 + Spring Boot 3.5.3 + Netty 4.2.9.Final + Disruptor + Virtual Threads。
|
Java 25 + Spring Boot 3.5.3 + Netty 4.2.9.Final + Disruptor + Virtual Threads。
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user