eb97c5300a
测试反馈两个问题: 1. 代理转发地址只写了服务名 upstream-chan,未带端口 → 默认连 80 端口被拒。 改为 upstream-chan:8110。已核对其它服务(admin-svr / openapi / app-server / worker-svr)的上游地址均带端口,只有 upstream-proxy 这一处遗漏。 2. 直连 8110 查询报「通道未实例化」。根因在种子数据的 is_normal: 该字段语义是 0=正常、1=异常(chan 侧 CanCreateInstance 只在 *IsNormal==0 时 创建实例;NULL 也不合格)。mock 通道原来写的 1,因此实例从未创建。 改为 0。注意内网演示环境种子同样是 1,属开源版修正。 种子的 ON DUPLICATE KEY UPDATE 已包含 is_normal,老库重跑该段即可修复。 已验证(清空 data 目录从零启动): - t_sim_channels 中 channel_yd_mock 的 is_normal=0 - chan 日志出现 Create channel instance success, chanKey: channel_yd_mock - 日志无 abnormal / 未实例化 相关记录
111 lines
2.8 KiB
YAML
111 lines
2.8 KiB
YAML
# ============================================================
|
|
# iotlcm-upstream-proxy 配置
|
|
#
|
|
# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。
|
|
# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、
|
|
# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。
|
|
# ============================================================
|
|
|
|
system:
|
|
name: "IotLCM-Upstream-Proxy"
|
|
version: "1.0"
|
|
description: "IotLCM Upstream Proxy Service"
|
|
gfmode: "prod"
|
|
upload:
|
|
local:
|
|
path: "/app/upload"
|
|
|
|
# ---------- 智能诊断内部凭据 ----------
|
|
# 控制台「智能诊断」调用本服务的内部凭据,
|
|
# 必须与 admin-svr 的 upstream.appDiagnosisToken 一致。
|
|
# 生成:openssl rand -hex 16
|
|
appDiagnosis:
|
|
internalToken: "iotlcm_diagnosis_2026"
|
|
|
|
server:
|
|
name: "iotlcmupstreamproxy-grpc-svc"
|
|
address: ":8510"
|
|
openapiPath: "/api.json"
|
|
swaggerPath: "/swagger"
|
|
indexFiles: ["index.html", "index.htm"]
|
|
indexFolder: false
|
|
fileServerEnabled: true
|
|
initLoadMemoryDB: false
|
|
maxHeaderBytes: "20KB"
|
|
clientMaxBodySize: "200MB"
|
|
|
|
# ---------- 服务注册 ----------
|
|
registry:
|
|
type: "consul"
|
|
address: "consul:8500"
|
|
|
|
logger:
|
|
path: "/app/logs"
|
|
file: "{Y-m-d-H}.log"
|
|
prefix: ""
|
|
level: "info"
|
|
timeFormat: "2006-01-02T15:04:05.000"
|
|
ctxKeys: []
|
|
header: true
|
|
stdout: true
|
|
rotateSize: 0
|
|
rotateExpire: 0
|
|
rotateBackupLimit: 0
|
|
rotateBackupExpire: 0
|
|
rotateBackupCompress: 0
|
|
rotateCheckInterval: "1h"
|
|
stdoutColorDisabled: false
|
|
writerColorEnable: false
|
|
|
|
# ---------- 数据库 ----------
|
|
database:
|
|
logger:
|
|
path: "/app/logs"
|
|
level: "all"
|
|
stdout: true
|
|
default:
|
|
# 必改:连接串
|
|
link: "mysql:u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=True&loc=Asia%2FShanghai"
|
|
debug: false
|
|
charset: "utf8mb4"
|
|
dryRun: false
|
|
maxIdle: 30
|
|
maxOpen: 100
|
|
maxLifetime: 120
|
|
memorydb:
|
|
link: "sqlite::@file(:memory:)"
|
|
debug: false
|
|
maxIdle: 1
|
|
maxOpen: 1
|
|
maxLifetime: 30
|
|
|
|
cache:
|
|
adapter: "redis"
|
|
fileDir: "resource/cache"
|
|
|
|
# ---------- Redis ----------
|
|
redis:
|
|
default:
|
|
mode: "single"
|
|
sentinelMasterName: ""
|
|
address: "redis:6379"
|
|
db: 0
|
|
pass: "Iotlcm2026Default"
|
|
minIdle: 5
|
|
maxIdle: 30
|
|
maxActive: 5000
|
|
idleTimeout: "60s"
|
|
ClientName: "SystemCache"
|
|
|
|
# ---------- 上游通道服务 ----------
|
|
gateway:
|
|
# 通道服务地址:必须带端口,只写服务名会走默认 80 端口被拒
|
|
address: "upstream-chan:8110"
|
|
timeout: 10s
|
|
# 单次批量转发的总预算上限。
|
|
# 非 APN 批量按「单卡超时 × 卡数」计算并以此封顶,
|
|
# 避免通道逐卡串行办理时请求仍在执行就被判失败
|
|
# (批量重启、停复机、批量查询)。
|
|
# worker 侧的超时配置必须大于该值。
|
|
batchTimeout: 20m
|