# ============================================================ # iotlcm-worker-svr 配置示例 # # cp config.example.yaml config.yaml # # 本服务是异步中枢:消费 RabbitMQ 队列,执行批次开停复机、 # 全量同步、流量统计等后台任务。 # ============================================================ system: name: "IotLCM" version: "1.0" description: "IotLCM Worker" gfmode: "prod" upload: local: path: "resource/upload" logger: path: "/app/logs" file: "{Y-m-d-H}.log" prefix: "" level: "all" timeFormat: "2006-01-02T15:04:05" 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/sql" level: "all" stdout: true default: # 必改:连接串 link: "mysql:u_iotlcm:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?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: "${REDIS_PASSWORD}" minIdle: 5 maxIdle: 30 maxActive: 5000 idleTimeout: "60s" ClientName: "WorkerCache" # ---------- RabbitMQ ---------- rabbitmq: enabled: true dsn: "amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@rabbitmq:5672/" balanceRecharge: retryDelay: "1m" batchExecute: executionTimeout: "0s" finalizationTimeout: "60s" retryDelay: "30s" maxRetries: 3 # ---------- 批次执行 ---------- batch: allocate: processingRetryAfter: "30m" inbound: upstreamBatchSize: 1 upstreamConcurrency: 300 # 运营商接口限流。必须按上游实际配额设置, # 调太大会被运营商限流甚至封禁。 upstreamRateLimit: enabled: true mode: "redis" redisGroup: "default" keyPrefix: "iotlcm:worker:inbound:upstream_basic_info" redisFailureFallback: "error" default: enabled: false carriers: mobile: enabled: false telecom: enabled: true qps: 20 burst: 1 requestCost: 1 channels: {} stockQueryBatchSize: 1000 writeBatchSize: 1000 # ---------- TDengine(流量历史) ---------- # 不启用时序库时 dsn 留空,全量同步中的流量历史部分不可用。 tsdb: database: "TdEngine" tdengine: type: "taosWS" dsn: "${TDENGINE_USER}:${TDENGINE_PASSWORD}@ws(${TDENGINE_HOST}:${TDENGINE_PORT})/" # dbName 只是连接池键名与兜底值,不决定实际访问哪个库 dbName: "${TDENGINE_DAILY_DB}" dailyDbName: "${TDENGINE_DAILY_DB}" monthlyDbName: "${TDENGINE_MONTHLY_DB}" maxOpenConns: 100 maxIdleConns: 10 # ---------- 上游服务地址 ---------- upstream: proxy: address: "upstream-proxy:8510" # 异步提交协议版本,保持默认 apnAsyncProtocolVersion: 1 timeout: 10s