拓扑图

一、安装JDK8
1.1、下载JDK8

点击则弹出的提示框,可以直接下载文件到本地,再将本地文件上传到对应需要安装的服务器对应目录上。

方式2:用上传工具直接上传到指定目录

1.2、解压jar.gz

1.3、设置环境变量
export JAVA_HOME=/mnt/resource/jdk/jdk1.8.0_321
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin


创建软链接,为jdk的真实目录创建一个命名更简洁的快捷方式。
[root@VM-16-16-centos bin]# ln -s mnt/resource/jdk/jdk1.8.0_321/bin/javac usr/bin/javac
[root@VM-16-16-centos bin]# ln -s mnt/resource/jdk/jdk1.8.0_321/bin/jar usr/bin/jar
[root@VM-16-16-centos bin]# ln -s mnt/resource/jdk/jdk1.8.0_321/bin/java bin/java
二、搭建Nacos2.0.4集群
服务器环境
服务器001:172.21.16.16
服务器002:172.21.16.12 (本机安装了Nginx)
服务器003:172.21.16.7
Nacos支持三种部署模式
单机模式 - 用于测试和单机试用。
集群模式 - 用于生产环境,确保高可用。
多集群模式 - 用于多数据中心场景。
2.1、下载源码或者安装包
nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html
从 Github 上下载源码方式
unzip nacos-source.zip
cd nacos/
mvn -Prelease-nacos clean install -U
cd nacos/distribution/target/nacos-server-2.0.4/nacos/bin
下载编译后压缩包方式

方式2:在服务器对应目录直接执行wgethttps://github.com/alibaba/nacos/releases/download/2.0.4/nacos-server-2.0.4.tar.gz

2.2、解压jar.gz

2.3、配置Nacos
使用内置数据源
使用外置数据源
sql源文件:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql或直接从nacos-2.0.4/distribution/conf目录下拿到,然后在客户端执行或服务器直接执行,本文采用第二种方式直接在安装了mysql的服务器001上执行,具体命令如下:
cd mnt/resource/nacos/nacos-2.0.4/distribution/conf
mysql -uroot -pxxxx
create database nacos_config;
use nacos_config;


2)application.properties 配置(每台服务器对应都需要修改)
vim application.properties
# 表明用MySQL作为后端存储
spring.datasource.platform=mysql
# 有几个数据库实例
db.num=2
# 第1个实例的地址
db.password=nxxxx

修改后:
# 请每行配置成ip:port(请配置3个或3个以上节点)
cp conf/cluster.conf.example conf/cluster.conf
vim conf/cluster.conf
#it is ip
#example
172.21.16.16:8848
172.21.16.12:8848
172.21.16.7:8848
2.4、开放防火墙
每台服务器将8848端口开放
[root@bogon bin]# firewall-cmd --zone=public --add-port=8848/tcp --permanent
[root@bogon bin]# firewall-cmd --reload
2.5、启动服务器
Linux/Unix/Mac
sh startup.sh -m standalone & //单节点使用需要加-m standalone参数启动
1)使用内置数据源
sh startup.sh -p embedded
2)使用外置数据源
sh startup.sh
腾讯云centos7.5 执行startup.sh报如下错误 (如无错误忽略)

1.查看哪个安装包包含该库
yum provides libstdc++.so.6
2.安装
yum install libstdc++-4.8.5-44.el7.i686



2.6、设置nacos为自启动服务
vim /usr/lib/systemd/system/nacos.service
插入如下内容
[Unit]
Description=nacos-server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
#这个地址更换为你得安装地址
ExecStart=/mnt/resource/nacos/nacos/bin/startup.sh
#这个地址更换为你得安装地址
ExecStop=/mnt/resource/nacos/nacos/bin/shutdown.sh
Restart=always PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 重新加载某个服务的配置文件使其生效
systemctl daemon-reload
# 重新启动服务
systemctl restart nacos.service
# 查看服务状态
systemctl status nacos.service
# 开启自启动
systemctl enable nacos.service

2.7、配置nginx nacos反向代理与负载均衡
cd /etc/nginx/conf.d
vi nacos.xxx.cn.conf
#插入下面内容
upstream nacos {
server 127.0.0.1:8848;
server 172.21.16.16:8848;
server 172.21.16.7:8848;
}
server {
listen 80;
server_name www.nacos.xxx.cn nacos.xxx.cn;
location /nacos/ {
proxy_pass http://nacos/nacos/;
}
location /{
proxy_pass http://nacos/nacos/;
}
}
nginx -s reload生效,www.nacos.xxx.cn即可访问

附录
1、mysql创建nacos用户并授权
[root@VM-16-7-centos ~]# mysql -uroot -phxxxxx!
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1295
Server version: 8.0.28 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql
Database changed
mysql> create user 'nacos'@'%' identified by 'nacos_Hsg123!';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on nacos.* to 'nacos'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

2、nacos启动报错 ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!

则创建软链接,为jdk的真实目录创建一个命名更简洁的快捷方式。
[root@VM-16-16-centos bin]# ln -s /mnt/resource/jdk/jdk1.8.0_321/bin/javac /usr/bin/javac
[root@VM-16-16-centos bin]# ln -s /mnt/resource/jdk/jdk1.8.0_321/bin/jar /usr/bin/jar
[root@VM-16-16-centos bin]# ln -s /mnt/resource/jdk/jdk1.8.0_321/bin/java /bin/java









