Nacos2.2.3集群搭建
Nacos集群搭建
Nacos集群采用MySQL
作为底层存储,本文采用Nacos2.2.3版本,这也是当前最新的稳定版本,我准备三台机器用于集群搭建。
[root@linux1 nacos]# cat /etc/hosts
192.168.233.101 linux1
192.168.233.102 linux2
192.168.233.103 linux3
1. JDK
所有机器都需要安装JDK运行环境,并配置环境变量
yum install -y java-1.8.0-openjdk*
配置环境变量
[root@linux1 nacos]# cat /etc/profile.d/java-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-4.el9.x86_64
export PATH=$PATH:$JAVA_HOME/bin
[root@linux1 nacos]# source /etc/profile
2. 下载
Nacos可以使用源码和编译后的压缩包进行安装,本文使用编译后的压缩包进行安装,下载地址为:https://github.com/alibaba/nacos/releases/tag/2.2.3
按照上图所示下载并上传到服务器上,解压后目录结构如下图所示:
[root@linux1 software]# tree nacos -L 2
nacos
├── bin
│ ├── shutdown.cmd # win下的关闭脚本
│ ├── shutdown.sh # linux下的关闭脚本
│ ├── startup.cmd # win下的启动脚本
│ └── startup.sh # linux下的启动脚本
├── conf
│ ├── 1.4.0-ipv6_support-update.sql # 支持ipv6
│ ├── announcement.conf
│ ├── application.properties # spring boot配置文件
│ ├── application.properties.example # Spring boot配置文件模板
│ ├── cluster.conf.example # 集群配置,需要重命名为cluster.conf
│ ├── derby-schema.sql # derby的建表语句
│ ├── mysql-schema.sql # Mysql的建表语句
│ └── nacos-logback.xml # 日志配置文件
├── LICENSE # 协议
├── NOTICE
├── target
│ └── nacos-server.jar # 运行的jar包
3. 配置
搭建集群要做两个配置
第一个是application.properties
中要配置数据库信息。
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
# spring.datasource.platform=mysql
spring.sql.init.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://linux1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=MyNewPass4!
同时需要创建数据库名称,并执行建表语句。
mysql> use nacos
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> source /opt/software/nacos/conf/mysql-schema.sql
第二个要修改的是cluster.conf
(默认没有这个文件,可以将cluster.conf.example
重命名)
192.168.233.101:8848
192.168.233.102:8848
192.168.233.103:8848
配置的内容就是ip:port
,ip就是本地的ip,端口则是nacos的端口,默认就是8848
。
4. 启动
每个机器的都执行启动命令:
[root@linux1 nacos]# bin/startup.sh
[root@linux2 nacos]# bin/startup.sh
[root@linux3 nacos]# bin/startup.sh
5. 负载
多个实例已经启动,可以使用SLB
来实现服务的负载均衡,我使用nginx
来实现,比如我安装在linux1
这个机器上。
[root@linux1 software]# sudo yum install yum-utils -y
[root@linux1 software]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 安装nginx
[root@linux1 software]# sudo yum install nginx
# 启动,开机启动nginx
[root@linux1 software]# systemctl enable nginx --now
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
访问http://linux1
,看到如下图代表安装成功。
安装完毕后,需要配置负载均衡。
[root@linux1 conf.d]# cat default.conf
upstream nacosserver {
server 192.168.233.101:8848;
server 192.168.233.102:8848;
server 192.168.233.103:8848;
}
server {
listen 80;
server_name localhost;
location /nacos/ {
proxy_pass http://nacosserver;
}
}
关闭防火墙和SELINUX
。
6. 访问
集群管理菜单能够查看集群情况: