1. 概念
Nacos 是阿里巴巴的開源的項(xiàng)目桐早,全稱 Naming Configuration Service,注冊(cè)中心和配置中心是其提供的兩大功能蛤售。注冊(cè)中心即提供服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)功能忽舟。因此Nacos 還是 Spring Cloud Alibaba 組件之一,負(fù)責(zé)服務(wù)注冊(cè)與發(fā)現(xiàn)募胃。
綜述:Nacos 就是注冊(cè)中心 + 配置中心的組合看疙,解決微服務(wù)開發(fā)涉及到的服務(wù)注冊(cè)與發(fā)現(xiàn),服務(wù)配置送漠,服務(wù)管理等問題顽照。
1.1 Nacos注冊(cè)中心
作為注冊(cè)中心,Nacos與Dubbo使用的zookeeper相比而言闽寡,兩者差異還是比較大的代兵,兩種差異在于:
- zookeeper是一種分布式的協(xié)調(diào)服務(wù),它天生是作為分布式數(shù)據(jù)一致性場(chǎng)景下的解決方案爷狈,所以zookeeper是CP的植影,
它犧牲了可用性來保證一致性
,在極端情況下(master選舉期間)服務(wù)會(huì)對(duì)外停止涎永,對(duì)于服務(wù)可用性要求比較高的系統(tǒng)是難以接受的思币。 - Nacos是一種去中心化的架構(gòu)鹿响,屬于CAP理論里的AP架構(gòu),支持最終一致性谷饿,在分布式服務(wù)發(fā)現(xiàn)與注冊(cè)場(chǎng)景下具有很不錯(cuò)的性能惶我。目前dubbo官方也支持使用Nacos代替zookeeper。
注冊(cè)中心原理
1.2 Nacos配置中心
動(dòng)態(tài)配置管理是配置中心的功能,通過動(dòng)態(tài)配置服務(wù),我們可以在所有環(huán)境中以集中和動(dòng)態(tài)的方式管理所有應(yīng)用程序或服務(wù)的配置信息辛友。這種服務(wù)能夠讓我們的服務(wù)擁有更多的靈活性,不需要重啟服務(wù)即可做到配置實(shí)時(shí)生效听怕,非常適合于“配置優(yōu)先”的服務(wù)開發(fā)。動(dòng)態(tài)配置中心可以實(shí)現(xiàn)配置更新時(shí)無需重新部署應(yīng)用程序和服務(wù)即可使相應(yīng)的配置信息生效虑绵,這極大了增加了系統(tǒng)的運(yùn)維能力尿瞭。
2.部署方法
2.1 安裝下載
支持windows和linux,下載地址翅睛,版本情況如下:
- nacos-server-2.0.0-ALPHA.2.tar.gz 已編譯Linux和macOS格式
- nacos-server-2.0.0-ALPHA.2.zip windows版本
- Source code(zip) windows版本源碼
- Source code (tar.gz) Linux和macOS格式源碼
2.2 啟動(dòng)
Nacos支持多種方式:
- 單機(jī)模式 - 用于測(cè)試和單機(jī)試用声搁。
- 集群模式 - 用于生產(chǎn)環(huán)境,確保高可用宏所。
- 多集群模式 - 用于多數(shù)據(jù)中心場(chǎng)景酥艳。
因此根據(jù)不同平臺(tái),執(zhí)行不同的配置操作:
(1)單機(jī)模式
兩種方式處理:
方法一:修改bin目錄下的startup.cmd文件爬骤,將set MODE="cluster"一行改成set MODE="standalone",然后直接運(yùn)行startup.cmd莫换。運(yùn)行成功后霞玄,訪問http://localhost:8848/nacos可以查看Nacos的主頁,默認(rèn)賬號(hào)密碼都是nacos拉岁。
方法二:執(zhí)行以下命令
Linux/Unix/Mac:sh startup.sh -m standalone
Windows:cmd startup.cmd -m standalone
注意執(zhí)行命令之前看是否存在環(huán)境變量坷剧,沒有可以在startup.cmd設(shè)置
set "JAVA=C:\Program Files\Java\jre1.8.0_144\bin\java.exe"
(1)數(shù)據(jù)庫集群模式
conf 目錄找到相關(guān)配置,然后進(jìn)行修改操作:
- 根據(jù)nacos-mysql.sql 初始化SQL
創(chuàng)建數(shù)據(jù)庫喊暖,庫名:nacos_config惫企,字符集:utf8 — UTF-8 Unicode,排序規(guī)則:utf8_general_ci陵叽,nacos/conf/nacos-mysql.sql文件里的sql腳本執(zhí)行到上面新建的數(shù)據(jù)庫中狞尔。 - 修改nacos/conf/application.properties配置文件
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
- 維持bin目錄下的startup.cmd文件中的set MODE="cluster"這一行不變,然后將nacos/conf/cluster.conf.example文件復(fù)制一份改名為cluster.conf巩掺,但是要保持里面內(nèi)容為空偏序。
-
啟動(dòng)bin目錄下的startup.cmd文件,啟動(dòng)成功之后效果如下:
image.png