docs: document yutong launchctl mqtt tuning

This commit is contained in:
lingniu
2026-07-01 14:44:24 +08:00
parent 0d77f7777f
commit aa30a413c5
2 changed files with 22 additions and 1 deletions

View File

@@ -39,6 +39,12 @@ export YUTONG_MQTT_URI=''
export YUTONG_MQTT_TOPIC='#'
export YUTONG_MQTT_USERNAME=''
export YUTONG_MQTT_PASSWORD=''
export YUTONG_MQTT_KEEP_ALIVE_SECONDS='20'
export YUTONG_MQTT_CONNECTION_TIMEOUT_SECONDS='10'
export YUTONG_MQTT_TLS_CA_PEM=''
export YUTONG_MQTT_TLS_CLIENT_PEM=''
export YUTONG_MQTT_TLS_CLIENT_KEY=''
export YUTONG_MQTT_TLS_HOSTNAME_VERIFICATION_ENABLED='true'
mkdir -p "$HOME/Library/LaunchAgents" "$PROJECT_ROOT/data"
mkdir -p /tmp/lingniu-gb32960-live /tmp/lingniu-jt808-live /tmp/lingniu-yutong-mqtt-live /tmp/lingniu-vehicle-history-live /tmp/lingniu-vehicle-analytics-live
@@ -46,7 +52,7 @@ mkdir -p /tmp/lingniu-gb32960-live /tmp/lingniu-jt808-live /tmp/lingniu-yutong-m
python3 deploy/local/launchctl/render.py
```
渲染脚本固定生成 `gb32960 jt808 yutong-mqtt vehicle-history vehicle-analytics` 五个 plist并会对密码、JDBC URL、MQTT topic 中的 XML 特殊字符做转义,避免 `#``&` 等字符破坏 plist。
渲染脚本固定生成 `gb32960 jt808 yutong-mqtt vehicle-history vehicle-analytics` 五个 plist并会对密码、JDBC URL、MQTT topic、keepAlive、连接超时和 TLS PEM 参数中的 XML 特殊字符做转义,避免 `#``&` 等字符破坏 plist。
如果生产配置由 Nacos 下发,可以把模板里的 `NACOS_CONFIG_ENABLED` 改成 `true`,并补充 `NACOS_SERVER_ADDR``NACOS_NAMESPACE``NACOS_GROUP``NACOS_USERNAME``NACOS_PASSWORD`。端口、Kafka topic、接入服务冷备 archive 路径、TDengine 连接建议仍保留为启动环境变量,便于 Portainer、launchctl 和临时压测保持一致。

View File

@@ -133,6 +133,21 @@ class PortainerComposeResourceLimitsTest {
}
}
@Test
void localLaunchctlReadmeDocumentsYutongMqttProductionTuning() throws IOException {
String readme = Files.readString(repositoryRoot()
.resolve("deploy/local/launchctl/README.md"));
assertThat(readme)
.contains("export YUTONG_MQTT_KEEP_ALIVE_SECONDS='20'")
.contains("export YUTONG_MQTT_CONNECTION_TIMEOUT_SECONDS='10'")
.contains("export YUTONG_MQTT_TLS_CA_PEM=''")
.contains("export YUTONG_MQTT_TLS_CLIENT_PEM=''")
.contains("export YUTONG_MQTT_TLS_CLIENT_KEY=''")
.contains("export YUTONG_MQTT_TLS_HOSTNAME_VERIFICATION_ENABLED='true'")
.contains("keepAlive、连接超时和 TLS PEM 参数");
}
@Test
void localLaunchctlTemplatesCoverActiveProductionApps() throws IOException {
Path launchctl = repositoryRoot().resolve("deploy/local/launchctl");