生產環境固然要高可用,Alibaba Nacos 集羣部署

前面學習了單機模式下的啓動,今天嘗試下集羣部署。
生產環境中部署nacos確定是使用集羣模式cluster保證高可用。
官方文檔的集羣部署推薦使用VIP+域名模式,把全部服務列表放到一個vip下面,而後掛到一個域名下面。mysql

三種部署方式

官方推薦,nacos集羣通常有3種方式,三種部署方式在訪問形式的區別以下,nginx

http://ip1:port/openAPI 直連ip模式,機器掛則須要修改ip纔可使用
http://VIP:port/openAPI 掛載VIP模式,直連vip便可,下面掛server真實ip,可讀性很差
http://nacos.com:port/openAPI 域名 + VIP模式,可讀性好,並且換ip方便,推薦模式web

官方建議至少3個或3個以上的節點來實現集羣模式。sql

修改啓動端口

程序啓動默認佔用的端口是8848,咱們能夠對端口進行修改,打開conf文件下的application.properties,修改啓動端口。數據庫

如今演示使用單機僞集羣模式,因此經過修改端口的方式來部署這3個實例,端口分別爲:884八、885八、8868。服務器

配置集羣配置文件

在nacos的解壓目錄nacos/的conf目錄下,配置文件cluster.conf,請每行配置成ip:port。(請配置3個或3個以上節點)架構

# ip:port
58.18.17.155:8848
58.18.17.155:8858
58.18.17.155:8868

配置 MySQL 數據庫

生產使用建議至少主備模式,或者採用高可用數據庫。app

初始化 MySQL 數據庫

sql語句源文件在distribution/conf/目錄下的nacos-mysql.sql,在本地初始化對應的數據庫。curl

添加數據庫配置

配置文件在nacos的conf目錄下的application.properties,添加如下配置socket

db.num=1
db.url.0=jdbc:mysql://58.18.17.155:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

db.num 爲數據庫實例數量 若是有多個數據庫實例經過 db.url.0、db.url.1..... 指定不一樣的數據庫連接。

啓動服務器

默認的沒有參數模式,就是集羣模式,啓動命令:
sh startup.sh

關閉服務器,能夠直接執行
sh shutdown.sh

配置Nginx服務

修改conf/nginx.conf配置

upstream nacos {
    server 58.18.17.155:8848;
    server 58.18.17.155:8858;
    server 58.18.17.155:8868;
}

server {
    listen 80;
    server_name test.nacos.com;
    location / {
        proxy_pass http://nacos;
    }
}

配置域名 test.nacos.com 綁定VIP

服務註冊和配置

服務註冊

curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080

服務發現

curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName

發佈配置

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld

獲取配置

curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

集羣管理

3個節點都正常啓動以後, 能夠分別登陸 各個web 界面查看 集羣的節點、健康狀態:

http://58.18.17.155:8848/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=

http://58.18.17.155:8858/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=

http://58.18.17.155:8868/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=

掃碼關注公衆號:架構進化論,得到第一手的技術資訊和原創文章

相關文章
相關標籤/搜索