文章目录
- 下载和启动
- 客户端配置
- maven依赖
- 为什么注册不上呢 todo
- nacos的配置存在哪里了?文件还是数据库?
- nacos derby数据库有账号和密码吗?在哪里?
- nacos界面为什么无法访问?
- nacos和eureka对比
- nacos支持yaml格式的配置还是prop格式的配置呢?
- 这几个鉴权参数对比
- 报错
- 启动报错 nacos.core.auth.plugin.nacos.token.secret.key value is empty, please input:
- 其他
- 文档
nacos是阿里的一款动态服务发现,服务配置的管理平台。
相比于eureka,机制有所不同,功能更强大,例如,eureka就没配置中心。
关于要不要用nacos,仁者见仁,智者见智。
从工作的角度来说,项目中遇到哪个必须掌握,不会也得会。
从对个人要求来说,主流的技术栈必须掌握,或者说至少有一些认识,基础操作要能完成。
下载和启动
进入nacos官网(https://nacos.io/),点导航栏的下载标签到下载界面,如图:
下载2.x或3.x。
1、conf/application.properties修改配置参数:
见base64生成鉴权参数:nacos.core.auth.plugin.nacos.token.secret.key=xu5bhMXs2DDbVv/x6QrczIZ1uwUt4R5wqTs0hmci6Ms=这两个写固定值就行:nacos.core.auth.server.identity.key=nacosKeynacos.core.auth.server.identity.value=nacosValue2、cmd终端启动:
单机必须加-m standalone参数,否则找不到集群配置会报错。
startup.cmd-mstandalone3、控制台打印如下说明启动成功
4、访问管理界面
nacos3.x地址:
http://localhost:8080/
nacos2.x地址:
http://localhost:8848/nacos
客户端配置
maven依赖
为什么注册不上呢 todo
nacos的配置存在哪里了?文件还是数据库?
config配置中心是放文件了。
nacos的其实也是放在文件。那么为什么会有数据库脚本呢?哪个是服务相关数据库。
1、默认是derby数据库。
2、如果要用mysql数据库需要显示的设置spring.datasource.platform=mysql
这个配置在nacos服务/conf目录/application.properties里面来配置。
nacos derby数据库有账号和密码吗?在哪里?
注:不是登录的账号和密码,是连数据库的账号和密码。
也有一说是nacos运行期间,不能连derby数据库。需要先停nacos服务,才能连。
nacos界面为什么无法访问?
是被屏蔽了吧。
nacos和eureka对比
对比如下:
| — | nacos | eureka |
|---|---|---|
| 功能定位 | 除服务注册与发现外,提供动态配置管理、DNS服务、流量管理等功能,拥有可视化控制台。 | 仅专注服务注册与发现,需配合其他组件(如Spring Cloud Config)实现配置管理,无原生管理界面。 |
| CAP理论支持 | 支持AP(可用性优先)和CP(一致性优先)模式切换,默认CP模式,强调强一致性。 | 仅支持AP模式,在网络分区时优先保证可用性,可能牺牲一致性。 |
| 健康检查机制 | 支持HTTP和TCP两种健康检查方式,可更精准判断服务状态。 | 仅依赖HTTP心跳机制,默认30秒续约一次。 |
| 动态配置管理 | 内置配置中心,支持实时推送配置变更,无需重启服务。 | 需额外集成Spring Cloud Config,配置更新需手动触发。 |
| 多语言与生态支持 | 原生支持Java、Go、Python等语言,与Spring Cloud Alibaba及Kubernetes生态兼容。 | 主要面向Java生态,与Spring Cloud Netflix组件(如Ribbon、Zuul)深度集成。 |
| 高可用与集群设计 | 基于Raft协议实现强一致性,采用无主节点设计,支持虚拟IP自动故障转移。 | 通过RESTful API同步数据,采用主备模式,数据同步存在延迟。 |
| 典型应用场景 | 需统一管理服务注册与配置、多语言混合开发、强一致性要求的场景(如金融系统)。 | Spring Cloud Netflix技术栈快速构建、对一致性要求不高的高可用场景。 |
总结:Nacos在功能全面性和扩展性上更具优势,适合复杂微服务架构;Eureka则以轻量简洁见长,适合Spring Cloud纯Java生态的快速开发。两者的选择需结合具体技术栈和业务需求。
nacos支持yaml格式的配置还是prop格式的配置呢?
都支持,而且还可以混着来。
之前一直以为只能支持yaml格式呢?试了下居然两种可以一起支持。
这几个鉴权参数对比
| 配置项(简写) | 用途 | 谁在用 |
|---|---|---|
token.secret.key | jwt签名密钥,签发/校验访问token,如curl请求nacos | 客户端、openapi调用方 |
server.identity.key/.value | 节点间互信,成对使用 | nacos集群内部节点 |
| 控制台账号密码 | 登录管理界面 | 人 / 管理员 |
客户端username/password | 应用访问config、discovery 接口 | 你的服务 |
鉴权参数全称:
nacos.core.auth.plugin.nacos.token.secret.key=xu5bhMXs2DDbVv/x6QrczIZ1uwUt4R5wqTs0hmci6Ms=nacos.core.auth.server.identity.key=nacosKeynacos.core.auth.server.identity.value=nacosValue 鉴权开关,3.x默认是开启(true),2.x默认是关闭(false)。建议开启,因为配置这几个参数也并不复杂。 开启后会校验base64、界面登录需要输入账号密码。nacos.core.auth.enabled=true username/password# nacos管理界面账号密码,业务应用配置的账号密码都是这个生成base64鉴权参数:
命令: openssl rand-base6432拿到的结果: xu5bhMXs2DDbVv/x6QrczIZ1uwUt4R5wqTs0hmci6Ms=报错
启动报错 nacos.core.auth.plugin.nacos.token.secret.key value is empty, please input:
见生成base64鉴权参数,然后配置到配置文件。
其他
文档
官网地址:
https://nacos.io/
官网文档地址:
https://nacos.io/docs/v2/what-is-nacos/ # 这是2.X版本的文档
可以自己选版本文档,左上角靠右一点,选择版本就是对应版本文档,例如这里选的是2.X