目錄
Nacos集群部署與持久化
准備環境
請確保是在環境中安裝使用:
- 64 bit OS Linux/Unix/Mac,推薦使用Linux系統。
- 64 bit JDK 1.8+;下載.配置。
3. Maven 3.2.x+;下載.配置。 - 3個或3個以上Nacos節點才能構成集群。 nacos-server-1.1.4.tar.gz下載
本次集群部署使用:1個Nginx、3個Nacos、1個Mysql
Linux-Centos-7安裝Mysql5.7數據庫
-
安裝wget指令
[root@localhost opt]# yum -y install wget
-
在線下載Mysql安裝源
[root@localhost opt]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
-
安裝Mysql安裝源
[root@localhost opt]# yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
-
在線安裝Mysql
[root@localhost opt]# yum -y install mysql-community-server
-
啟動Mysql服務
[root@localhost opt]# systemctl start mysqld
-
設置開機啟動
[root@localhost opt]# systemctl enable mysqld [root@localhost opt]# systemctl daemon-reload
-
修改root登錄密碼
# mysql安裝完成之后,會在/var/log/mysqld.log文件中給root生成了一個臨時的默認密碼 [root@localhost opt]# cat /var/log/mysqld.log # A temporary password is generated for root@localhost: hNR?y3TWzct1(密碼)
-
登錄Mysql
[root@localhost opt]# mysql -u root -p # 粘貼上述密碼
-
修改mysql默認密碼策略
# mysql5.7默認密碼策略要求密碼必須是大小寫字母數字特殊字母的組合,至少8位 mysql> set global validate_password_policy=0; # 修改密碼,此時默認密碼長度為8 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; # 查看密碼長度 mysql> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 8 | +----------------------------+ 1 row in set (0.00 sec) # 設置密碼長度 mysql> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec) mysql> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 4 | +----------------------------+ 1 row in set (0.00 sec) # 再次修改密碼 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec)
-
退出Mysql
mysql> exit
Mysql 5.7 開放端口允許遠程登錄、修改編碼為UTF-8
-
設置允許遠程登錄
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
-
防火牆開放端口3306
[root@localhost opt]# firewall-cmd --zone=public --add-port=3306/tcp --permanent [root@localhost opt]# firewall-cmd --reload
-
配置Mysql默認編碼UTF-8
# 修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置 character_set_server=utf8 init_connect='SET NAMES utf8' # 保存並退出 # 重啟mysql服務 [root@localhost opt]# systemctl restart mysqld
Nacos壓縮包上傳及Mysql數據庫配置
Nacos版本:nacos-server-1.1.4.tar.gz
-
上傳tar包至linux並解壓
[root@localhost opt]# tar -zxvf nacos-server-1.1.4.tar.gz
-
查看Nacos自帶的sql腳本
[root@localhost opt]# /opt/nacos/conf/nacos-mysql.sql
-
創建數據庫
[root@localhost conf]# mysql -u root -p mysql> create datebase nacos_config;
-
執行數據庫腳本
mysql> use nacos_config; mysql> source /opt/nacos/conf/nacos-mysql.sql; mysql> show tables; +------------------------+ | Tables_in_nacos_config | +------------------------+ | config_info | | config_info_aggr | | config_info_beta | | config_info_tag | | config_tags_relation | | group_capacity | | his_config_info | | permissions | | roles | | tenant_capacity | | tenant_info | | users | +------------------------+ 12 rows in set (0.00 sec)
-
修改Nacos數據庫信息(將Nacos內置型的數據庫切換為Mysql數據庫)
# 備份application.properties [root@localhost conf]# cp /opt/nacos/conf/application.properties /opt/nacos/conf/application.properties.bf # 修改application.properties配置文件 [root@localhost conf]# vim /opt/nacos/conf/application.properties ### 添加mysql數據庫配置信息 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=root db.password=123456 # :wq! 保存退出
Nacos集群部署
在Linux服務器上配置nacos的集群配置文件cluster.conf
-
復制配置文件
[root@localhost conf]# cd /opt/nacos/conf [root@localhost conf]# cp cluster.conf.example cluster.conf
-
修改配文件信息
# 查看本機網卡IP地址 [root@localhost conf]# hostname -I 192.168.2.123 # 編輯 cluster.conf [root@localhost conf]# vim cluster.conf #it is ip #example #192.168.16.101:8847 #192.168.16.102 #192.168.16.103 # 填寫本機 IP+端口號 192.168.2.123:8818 192.168.2.123:8828 192.168.2.123:8838
編輯Nacos集群的啟動腳本
# 備份啟動腳本
[root@localhost bin]# cp /opt/nacos/bin/startup.sh /opt/nacos/bin/startup.sh.bf
# 修改啟動腳本
[root@localhost bin]# vim /opt/nacos/bin/startup.sh
while getopts ":m:f:s:p:" opt
do
case $opt in
m)
MODE=$OPTARG;;
f)
FUNCTION_MODE=$OPTARG;;
s)
SERVER=$OPTARG;;
p)
PORT=$OPTARG;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
# 在142行添加 $JAVA-Dserver.port=${EMBEDDED_STORAGE}
142 nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
啟動集群
[root@localhost bin]# cd /opt/nacos/bin
[root@localhost bin]# ./startup.sh -p 8818
[root@localhost bin]# ./startup.sh -p 8828
[root@localhost bin]# ./startup.sh -p 8838
# 查看nacos是否啟動
[root@localhost bin]# ps -ef|grep nacos|grep -v grep|wc -l
Nginx負載均衡部署
Nginx下載地址:nginx-1.18.0
下載並上傳
# 解壓壓縮包
$ tar -zxvf nginx-1.18.0.tar.gz
依賴庫安裝
-
安裝 gcc 環境
# nginx 編譯時依賴 gcc 環境 $ sudo yum -y install gcc gcc-c++
-
安裝 pcre
# 讓nginx 支持重寫功能 $ sudo yum -y install pcre pcre-devel
-
安裝 zlib
# zlib 庫提供了很多壓縮和解壓縮的方式,nginx 使用 zlib 對 http 包內容進行 gzip 壓縮 $ sudo yum -y install zlib zlib-devel
-
安裝 openssl
# 安全套接字層密碼庫,用於通信加密 $ sudo yum -y install openssl openssl-devel
Nginx編譯安裝
-
進入解壓目錄
$ cd nginx-1.18.0
-
檢查編譯環境
# --prefix=/usr/local/nginx 是 nginx 編譯安裝的目錄(默認),安裝完后會在此目錄下生成相關文件 $ ./configure --prefix=/usr/local/nginx # 檢查平台安裝環境
-
源碼編譯與安裝
# 編譯 $ make # 安裝 $ make install
Nginx啟動
-
啟動服務
$ /usr/local/nginx/sbin/nginx
-
查看Nginx服務進程
$ ps -ef | grep nginx
-
web端訪問Nginx,默認端口80
# 瀏覽器中輸入虛擬機IP地址即可訪問
-
重新加載服務
$ /usr/local/nginx/sbin/nginx -s reload
-
停止服務
$ /usr/local/nginx/sbin/nginx -s stop
Nginx整合Nacos
-
備份配置文件Nginx配置文件nginx.conf
$ cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bf
-
配置nginx.conf
$ vim /usr/local/nginx/conf/nginx.conf # 配置負載均衡+反向代理 # 監聽端口號1111 33 #gzip on; 34 35 upstream cluster{ 36 server 127.0.0.1:8818; 37 server 127.0.0.1:8828; 38 server 127.0.0.1:8838; 39 } 40 41 server { 42 listen 1111; 43 server_name localhost; 44 45 #charset koi8-r; 46 47 #access_log logs/host.access.log main; 48 49 location / { 50 # root html; 51 # index index.html index.htm; 52 proxy_pass http://cluster; 53 }
-
以nginx.conf配置文件的形式啟動Nginx
$ cd /usr/local/nginx/sbin $ ./nginx -c /usr/local/nginx/conf/nginx.conf
-
啟動Nacos集群
$ cd /opt/nacos/bin $ ./startup.sh -p 8818 $ ./startup.sh -p 8828 $ ./startup.sh -p 8838
-
web訪問測試
# 虛擬機IP:1111/nacos # 賬號: nacos # 密碼: nacos