【Nacos】本地集群部署


關於Nacos已經展開了四篇入門文章:

初探Nacos(一)-- 單機模式啟動

初探Nacos(二)-- SpringCloud使用Nacos的服務注冊與發現

初探Nacos(三)-- SpringBoot下整合Dubbo和Nacos

初探Nacos(四)-- SpringBoot下使用Nacos作為配置中心

今天,我們開始進一步探索Nacos的使用,分布式集群模式部署Nacos。(另外,目前的Nacos1.0.0穩定版已發布,目前測試暫沒有發現問題,我們重新使用1.0.0來演示。)

當然,我們仍然參考官方文檔:集群部署說明,由於集群模式需要用到數據庫,此處我們默認你已安裝好Mysql數據庫, 然后我們到https://github.com/alibaba/nacos/releases下載最新的安裝包。

wget https://github.com/alibaba/nacos/releases/download/1.0.0/nacos-server-1.0.0.zip
復制代碼

unzip nacos-server-1.0.0.zip

cd nacos

cp conf/cluster.conf.example conf/cluster.conf

需要配置3個或3個以上節點,生產環境建議分布在多台服務器上,目前咱們僅在一台機器上測試。

vi conf/cluster.conf

127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850
復制代碼

然后進入mysql,創建名為nacos_config的數據庫 ,導入config/nacos-mysql.sql。(此處測試暫時使用單機數據庫,建議生產環境采用主從等高可模式)

建完數據庫完后,官方文檔上默認使用的是內嵌的cmdb數據庫,沒有Mysql數據庫的配置,有點讓人懵逼的,百度了一下,找到了配置。

vi conf/application.properties

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=數據庫用戶名 db.password=數據密碼 復制代碼

另外,由於我們在一台機器上跑三個,因此啟動腳本和關閉腳本需要做一點修改。

cp bin/startup.sh bin/startup-port.sh

vi bin/startup-port.sh

export MODE="cluster" export FUNCTION_MODE="all" export SERVER_PORT="8848" while getopts ":m:f:p:" opt do case $opt in m) MODE=$OPTARG;; f) FUNCTION_MODE=$OPTARG;; p) SERVER_PORT=$OPTARG;; ?) echo "Unknown parameter" exit 1;; esac done JAVA_OPT="${JAVA_OPT} -Dserver.port=${SERVER_PORT}" 復制代碼

cp bin/shutdown.sh bin/shutdown-port.sh

vi bin/shutdown-port.sh

PORT=$1 if [ ! $PORT ]; then echo "please select stop port!" >&2 exit 1 fi pid=`ps ax | grep -i 'nacos.nacos' |grep java |grep ${PORT} | grep -v grep | awk '{print $1}'` 復制代碼

啟動方式如下:

sh bin/startup-port.sh -p 8848

sh bin/startup-port.sh -p 8849

sh bin/startup-port.sh -p 8850

關閉方式如下:

sh bin/shutdown-port.sh 8848

sh bin/shutdown-port.sh 8849

sh bin/shutdown-port.sh 8850

啟動后就可以在瀏覽器打開 http://127.0.0.1:8848/nacos/,http://127.0.0.1:8849/nacos/,http://127.0.0.1:8850/nacos/ 即可看到控制台,默認用戶名/密碼為nacos/nacos。

附1: 可通過Nginx配置只訪問一個地址負載均衡到三個節點上:

upstream nacos-cluster{
    server 127.0.0.1:8848;
    server 127.0.0.1:8849;
    server 127.0.0.1:8850;
}
復制代碼

附2:集群模式下控制台的用戶名密碼都存在了數據庫的users表,用戶名直接修改就行,密碼需要用org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder加密。

然后我們就可以在演示項目里嘗試,只需在application.properties里將配置由單機模式改成集群模式:

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
復制代碼

配置中心的配置需要修改如下:

nacos.config.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
復制代碼

dubbo的配置需要修改如下:

dubbo.registry.address=nacos://127.0.0.1:8848?backup=127.0.0.1:8849,127.0.0.1:8850
復制代碼

啟動項目后,可以測試到服務注冊與發現、配置中心等均能像單機模式一樣正常使用。我們可以嘗試關閉其中一個或兩個nacos,仍然不影響系統的正常運行。



轉自:https://juejin.im/post/5cbad19ef265da038b20165e


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM