Node.js Nacos 动态配置
动态配置是 Nacos 的核心功能之一,支持运行时修改配置并实时生效,无需重启服务。
核心概念
| 概念 | 说明 |
|---|---|
| Data ID | 配置唯一标识,如 application.yml |
| Group | 配置分组,如 DEFAULT_GROUP |
| 命名空间 | 租户隔离,不同环境用不同 namespace |
Node.js 接入
bash
npm install nacosjs
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 |
| 连接参数 | 修改数据库连接池大小、超时时间 |
优势
- 实时生效 — 无需重启
- 版本管理 — 配置修改有历史记录可回滚
- 灰度发布 — 可以按灰度规则将配置推送到部分实例