使用
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
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
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
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 開源的早,使用的企業多些。
部署:nacos 比 apollo 簡單,單實例部署,nacos 1 進程,apollo 需要 3 進程。
生態:阿里和 spring 生態結合的非常好,spring 的應用可以很方便地接入 nacos。
性能:網上傳 nacos 要強。
github 活躍度:都比較活躍,apollo 開源的早,使用的企業多些。