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