Nacos 注冊中心集群搭建


本文使用直連 ip 模式,不通過 Nginx 轉發

1.項目配置中按如下編寫yml文件即可:

spring:
  # 配置 Nacos 注冊中心
  cloud:
    nacos:
      discovery:
        enabled: true # 如果不想使用 Nacos 進行服務注冊和發現,設置為 false 即可
        server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服務器地址

2.在 Nacos 的解壓目錄 nacos/conf 目錄下,復制配置文件 cluster.conf.example 並重命名為 cluster.conf,每行配置成 ip:port

cp cluster.conf.example cluster.conf
#example
172.28.40.133:8847
172.28.40.133:8848
172.28.40.133:8849

  注意,這里我用單節點不同的ip來搭建集群,所以要寫內網ip+端口

3.初始化 MySQL 數據庫

集群搭建的時候我們需要將 Nacos 對接 Mysql 進行數據存儲。如果要搭建高可用的集群環境,至少要滿足以下條件:

  • JDK 1.8+;
  • Maven 3.2.x+;
  • MySQL 5.6.5+(生產使用建議至少主備模式,或者采用高可用數據庫);
  • 3個或3個以上Nacos節點才能構成集群。

創建數據庫 nacos_config

SQL源文件地址在 nacos-server 解壓目錄 conf 下,找到 nacos-mysql.sql 文件,運行該文件,結果如下:

 

 

 

修改 nacos/conf/application.properties 文件的以下內容

 

 

 最終修改結果如下:

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
# 指定數據源為 MySQL
spring.datasource.platform=mysql

### Count of DB:
# 數據庫實例數量
db.num=1

# 數據庫連接信息,如果是 MySQL 8.0+ 版本需要添加 serverTimezone=Asia/Shanghai
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=1234

如果使用的是 MySQL 8.0+ 版本,那么啟動 Nacos 時會報錯。在 Nacos 安裝目錄下新建 plugins/mysql 文件夾,並放入 8.0+ 版本的 mysql-connector-java-8.0.xx.jar,重啟 Nacos 即可,啟動時會提示更換了 MySQL 的 driver-class 類。

 

 

 5.復制nacos目錄

cp -r /usr/local/java/nacos_8848 /usr/local/java/nacos_8847
cp -r /usr/local/java/nacos_8848 /usr/local/java/nacos_8849

修改nacos的配置文件application.properties 配置端口號8848分別為8847和8849

在 三台Nacos 的解壓目錄 nacos/bin 目錄下啟動。

啟動命令

sh startup.sh
sh shutdown.sh

訪問以下鏈接,默認用戶名/密碼是 nacos/nacos :

  • http://47.116.142.177:8847/nacos/
  • http://47.116.142.177:8848/nacos/
  • http://47.116.142.177:8849/nacos/

 

 

 可以看到8847沒啟動

進入8847查看命令:

tail -f /usr/local/nacos/logs/start.out

 

 

 要修改nacos-server的啟動腳本jvm參數 (內存參數設置的過小啟動不了這么多服務),就是startup.sh文件

#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
    JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    # JVM Configuration 將內存配置小一點 -Xms2g -Xmx2g -Xmn1g 改成 -Xms512m -Xmx512m -Xmn128m
    JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"

fi

修改后關閉nacos,重啟服務,重新連接即可

 

 

 啟動服務,看下注冊成功了沒

 

 

 

 

 


免責聲明!

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



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