本文使用直連 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
文件,運行該文件,結果如下:
4.nacos的配置文件application.properties 配置
修改 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
6.啓動服務器
在 三臺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沒啓動
可通過 /nacos/logs/nacos.log
(詳細日誌)或 /nacos/conf/start.out
(啓動記錄)的輸出內容查看是
進入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,重啓服務,重新連接即可