feat(build): 阶段0 冒烟底座(ACM2-10 U01–U04)
- U01:接入 KSP(kotlin-ksp 2.3.0)+micronaut-inject-kotlin,Micronaut BeanDefinition 由 0→94 个生成; 移除 processing.annotations 业务包过滤(N23) - U02:补 Gradle wrapper(9.6.1);版本矩阵单一来源——micronaut 固定 5.1.3(gradle.properties micronaut.version,平台 BOM 最高发布版)、JDK25 口径统一、snakeyaml 版本入 catalog; 新增 .github/workflows/ci.yml 与 Dockerfile;.gitignore 补 .kotlin/.opencode/.zcode/.gradle-* - U03:application.yml 键位修正(datasources.default/flyway.datasources.default/kafka.producers.default), 移除 logstash 死配置块、logback env 统一 MSGX_LOGSTASH_*;新增 application-dev.yml(/env、/beans 仅开发放开);PipelineProps 四嵌套类补 @ConfigurationProperties;新增 PipelinePropsBindingTest (改值—回读离线验收,Micronaut Test 5.x 用 TestPropertyProvider) - U04:README「数据库初始化」与 V2.0.0 脚本头声明 CMINMSGS legacy 前置(全新库需先建旧表)
This commit is contained in:
@@ -5,6 +5,8 @@ import java.time.Duration
|
||||
|
||||
/**
|
||||
* ACMA-8 参数表(v4)初值;阶段 0 现网基线校准。
|
||||
* U03(N02):Micronaut 要求嵌套配置类同样标注 @ConfigurationProperties,否则 msgx.pipeline/schd/
|
||||
* identity/consistency-check.* 全部静默回落 Kotlin 默认值(当前 yml 初值与默认值一致,现象被掩盖)。
|
||||
*/
|
||||
@ConfigurationProperties("msgx")
|
||||
class PipelineProps {
|
||||
@@ -18,6 +20,7 @@ class PipelineProps {
|
||||
|
||||
enum class Phase { A, B }
|
||||
|
||||
@ConfigurationProperties("pipeline")
|
||||
class Pipeline {
|
||||
var pollInterval: Duration = Duration.ofSeconds(1) // KEEP 现役节奏
|
||||
var claimBatch: Int = 50
|
||||
@@ -30,16 +33,19 @@ class PipelineProps {
|
||||
backoffMs.drop(attempt - 1).firstOrNull()?.coerceAtMost(backoffCapMs) ?: backoffCapMs
|
||||
}
|
||||
|
||||
@ConfigurationProperties("schd")
|
||||
class Schd {
|
||||
var flushPeriod: Duration = Duration.ofSeconds(3) // KEEP 现役节律
|
||||
var flushLimit: Int = 500
|
||||
}
|
||||
|
||||
@ConfigurationProperties("identity")
|
||||
class Identity {
|
||||
/** CONFIRM(矩阵 #11):SEQN 重置作用域确认前保持 false,计算集中此处(I3)。 */
|
||||
var includeDayBoundary: Boolean = false
|
||||
}
|
||||
|
||||
@ConfigurationProperties("consistency-check")
|
||||
class ConsistencyCheck {
|
||||
var onStartup: Boolean = true // 阶段 A 必选哨兵
|
||||
var dailySampleRatio: Double = 0.01
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# 开发/影子对拍环境 profile(U03/N32):放开管理端点可见性以便“改值—回读”与 /beans 装配核验。
|
||||
# 生产环境不加载本 profile(/env、/beans 保持默认 sensitive)。
|
||||
# 启动:MICRONAUT_ENVIRONMENTS=dev ./gradlew run
|
||||
micronaut:
|
||||
endpoints:
|
||||
env:
|
||||
enabled: true
|
||||
sensitive: false
|
||||
beans:
|
||||
enabled: true
|
||||
sensitive: false
|
||||
server:
|
||||
port: 8080
|
||||
@@ -1,6 +1,8 @@
|
||||
# =====================================================================
|
||||
# msgexchange-nextgen 配置(ACMA-8 v4)
|
||||
# 口令/端点全部环境变量外置——零入库(ACMA-8 契约冻结 + 安全基线)
|
||||
# 键位口径:Micronaut 5.1(U03):datasources.* / flyway.datasources.* /
|
||||
# kafka.producers.<name>.* / eureka.client.*(Micronaut 原生键,勿改回 datasource 单数或 Spring 风格)。
|
||||
# =====================================================================
|
||||
msgx:
|
||||
phase: A # A=Redis 权威(主泵单线程写,I5);B=FLIGHT_STATE 权威+投影
|
||||
@@ -27,16 +29,22 @@ micronaut:
|
||||
name: msgexchange-nextgen
|
||||
server:
|
||||
port: 8080
|
||||
# 管理端点(U03/N32):/env、/beans 默认 sensitive;仅开发/影子环境放开——见 application-dev.yml
|
||||
|
||||
datasource:
|
||||
url: ${MSGX_DB_URL}
|
||||
username: ${MSGX_DB_USER}
|
||||
password: ${MSGX_DB_PASSWORD}
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
datasources:
|
||||
default:
|
||||
url: ${MSGX_DB_URL}
|
||||
username: ${MSGX_DB_USER}
|
||||
password: ${MSGX_DB_PASSWORD}
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
flyway:
|
||||
enabled: true
|
||||
locations: classpath:db/migration
|
||||
datasources:
|
||||
default:
|
||||
enabled: true
|
||||
locations: classpath:db/migration
|
||||
# U04(R01):V2.0.0 只建六张辅助表,假定 CMINMSGS/CMINMSGS_HST 等 legacy 旧表已存在;
|
||||
# 全新库请按 README「数据库初始化」先落 legacy schema(或 baseline),否则收报首句 SQL 会报表不存在。
|
||||
|
||||
redis:
|
||||
uri: ${MSGX_REDIS_URI} # 阶段 A 权威存储;仅主泵线程写(I5)
|
||||
@@ -45,8 +53,9 @@ kafka:
|
||||
bootstrap:
|
||||
servers: ${MSGX_KAFKA_SERVERS}
|
||||
producers:
|
||||
acks: all
|
||||
enable-idempotence: true
|
||||
default: # U03/R09:Micronaut Kafka 按具名 producer 解析,须有 default 层
|
||||
acks: all
|
||||
enable-idempotence: true
|
||||
|
||||
eureka:
|
||||
client:
|
||||
@@ -54,7 +63,6 @@ eureka:
|
||||
enabled: ${msgx.register-eureka}
|
||||
default-zone: ${MSGX_EUREKA_URL:http://127.0.0.1:8761/eureka}
|
||||
|
||||
# logstash TCP JSON 通道保留(字段兼容现网,ACMA-3 部署前提)——见 logback.xml
|
||||
logstash:
|
||||
host: ${MSGX_LOGSTASH_HOST:127.0.0.1}
|
||||
port: ${MSGX_LOGSTASH_PORT:5044}
|
||||
# logstash TCP JSON 通道保留(字段兼容现网,ACMA-3 部署前提)。
|
||||
# U03/N13:logback 在 Micronaut 配置体系之外独立初始化,不读本文件——地址见 logback.xml,
|
||||
# 环境变量统一前缀 MSGX_LOGSTASH_HOST / MSGX_LOGSTASH_PORT(不要再在此处定义 logstash.* 死键)。
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
-- =====================================================================
|
||||
-- ACMA-8 v4 数据模型(六表)· Flyway 基线迁移
|
||||
-- 与 issue「综合架构设计」数据模型节逐字一致;影子实例在独立 schema 执行同一脚本。
|
||||
--
|
||||
-- U04/R01 前置声明:本脚本只建六张辅助表,假定 CMINMSGS/CMINMSGS_HST/COUTMSGS 等 legacy
|
||||
-- 旧表已存在(本仓库不声明旧表 V1,归 legacy 仓库维护)。全新空库请先按 legacy schema
|
||||
-- 建旧表再执行本脚本,否则收报首句 SQL 会报表不存在(详见 README「数据库初始化」)。
|
||||
-- =====================================================================
|
||||
|
||||
-- ① 处理状态伴生表(不动 CMINMSGS 旧列;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ACMA-8/ACMA-6:logstash TCP JSON 通道保留(字段兼容现网)+ MDC traceId -->
|
||||
<!-- U03/N13:logback 直接读环境变量(前缀 MSGX_LOGSTASH_*),与 application.yml 不再双定义 -->
|
||||
<configuration>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -8,7 +9,7 @@
|
||||
</appender>
|
||||
|
||||
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||||
<destination>${LOGSTASH_HOST:-127.0.0.1}:${LOGSTASH_PORT:-5044}</destination>
|
||||
<destination>${MSGX_LOGSTASH_HOST:-127.0.0.1}:${MSGX_LOGSTASH_PORT:-5044}</destination>
|
||||
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
|
||||
<includeMdcKeyName>traceId</includeMdcKeyName>
|
||||
</encoder>
|
||||
|
||||
Reference in New Issue
Block a user