nacos 初步调研


使用
nacos 是服务配置中心,也是服务注册中心(如 zk 于 dubbo,eureka, consul 于 spring cloud),后续并会增强服务治理。

nacos 中的配置文件由 (namespace, group, dataId) 三元组决定:
namespace 顶级目录(常用场景之一是区分不同环境的配置)
group 配置集分组
dataId 配置集

nacos 中配置文件的关系是独立的,如要实现 common 配置,nacos 客户端指定多配置即可。
nacos 支持 properties, yml, json, xml 格式。
nacos 支持回滚。
nacos 没有独立的保存动作,保存即发布。

nacos 源码:
https://github.com/alibaba/nacos 

Spring Cloud Alibaba 项目是由阿里巴巴维护的社区项目,借助于该项目,spring cloud 应用可以轻松接入阿里的开源或商用中间件:
https://github.com/spring-cloud-incubator/spring-cloud-alibaba 
 
源码调试
nacos-console 模块
主类 com.alibaba.nacos.Nacos#main
修改 application.properties 
添加 mysql 配置:
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

nacos-config 模块
处理 config 请求的 controller 在 nacos-config 模块中

nacos client 获取配置更新
com.alibaba.nacos.client.config.impl.ClientWorker.LongPollingRunnable#run
com.alibaba.nacos.config.server.controller.ConfigController#listener
 
单实例部署
1. 使用内置数据库:sh startup.sh -m standalone 
2. 使用 mysql 数据库:
  2.1 执行 nacos-mysql.sql 脚本
  2.2 修改conf/application.properties文件,增加支持 mysql 数据源配置
  2.3 sh startup.sh
3. nacos web 地址:127.0.0.1:8848/nacos
 用户名、密码: nacos/nacos
4. 查看配置:
curl -X GET http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config.properties&group=DEFAULT_GROUP
 
 
对比
功能:单论配置中心,nacos 和 apollo 差不多,apollo 的权限和发布稍微完备些,ui 体验好点。nacos 还有服务注册和发现的功能。
部署:nacos 比 apollo 简单,单实例部署,nacos 1 进程,apollo 需要 3 进程。
生态:阿里和 spring 生态结合的非常好,spring 的应用可以很方便地接入 nacos。
性能:网上传 nacos 要强。
github 活跃度:都比较活跃,apollo 开源的早,使用的企业多些。
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM