Skip to content

Node.js Nacos 动态配置

动态配置是 Nacos 的核心功能之一,支持运行时修改配置并实时生效,无需重启服务。

核心概念

概念说明
Data ID配置唯一标识,如 application.yml
Group配置分组,如 DEFAULT_GROUP
命名空间租户隔离,不同环境用不同 namespace

Node.js 接入

bash
npm install nacos
js
import { NacosConfigClient } from 'nacos'

const config = new NacosConfigClient({
  serverAddr: '127.0.0.1:8848',
  namespace: 'public',
})

// 获取配置
const content = await config.getConfig('app-config', 'DEFAULT_GROUP')
// → '{"server.port": 3000, "db.host": "localhost"}'

// 监听配置变化
config.subscribe({
  dataId: 'app-config',
  group: 'DEFAULT_GROUP',
}, (content) => {
  console.log('配置变更:', content)
  // 动态应用新配置(如修改连接池大小、日志级别等)
})

// 发布配置
await config.publishSingle('app-config', 'DEFAULT_GROUP', '{ "key": "value" }')

应用场景

场景示例
开关控制动态开启/关闭某功能(feature flag)
限流参数运行时调整限流阈值
日志级别动态调整 debug/info/error
连接参数修改数据库连接池大小、超时时间

优势

  • 实时生效 — 无需重启
  • 版本管理 — 配置修改有历史记录可回滚
  • 灰度发布 — 可以按灰度规则将配置推送到部分实例