基于docker容器搭建nacos集群(3节点)
一、安装前准备
本文所需文件免费下载地址:
1.1、服务器准备
Nacos集群搭建需要三个或三个以上的nacos节点才能构成集群,因此至少需要三台服务器资源,本次搭建沿用redis集群搭建和rocketmq集群搭建的三个容器充当三台服务器资源。
服务器资源 | Ip端口 |
10.25.27.116 | 8848 |
10.25.27.117 | 8848 |
10.25.27.118 | 8848 |
192.168.200.129(宿主机,充当mysql数据库资源机) | 3306 |
1.2、安装软件准备
序号 | 软件名称 | 功能用途 |
1 | nacos-server-1.4.1 | 注册/配置中心 |
2 | mysql | 进行数据存储 |
3 | nginx-1.17.0 | 负载均衡器 |
4 | pcre-8.37 | nginx依赖组件 |
5 | zlib | nginx依赖组件 |
6 | openssl | nginx依赖组件 |
7 | gcc,gcc-c++ | nginx,pcre依赖组件 |
二、软件安装
2.1、安装编译软件
1、gcc,gcc-c++安装(root操作)
检测gcc是否安装了,通过命令查看服务器gcc安装情况及版本,如果显示没有安装,则进行安装。
#查看gcc版本
gcc --version
g++ --version
# 或者
rpm -qa | grep gcc
# 安装
yum install gcc,gcc-c++
2、Zlib安装
同gcc一样,先检查是否安装了,如果没有安装再进行安装
# 查看安装情况
rpm -qa | grep zlib
# 安装
yum install zlib-devel
3、Openssl安装
同gcc一样,先检查是否安装了,如果没有安装再进行安装
# 查看安装情况
rpm -qa | grep openssl
# 安装
yum install openssl-devel
注意:如果使用yum安装失败或者下载速度慢,可以修改yum源为阿里巴巴的,具体操作步骤自行百度。
2.2、nacos安装
1、上传安装包到software目录下,并进入software目录
cd /home/test01/software
2、解压安装包到目录/home/test01/
tar -zxvf nacos-server-1.4.1.tar.gz -C /home/test01/
2.3、修改配置集群文件
1、进入/home/test01/nacos/conf,复制cluster.conf.example为cluster.conf
cd /home/test01/nacos/conf
cp cluster.conf.example cluster.conf
2、编辑cluster.conf配置集群参数
# 进入目录
cd /home/test01/naocs/conf
# 编辑cluster.conf文件,在后面添加节点配置(根据实际网址填写ip)
vim cluster.conf
#添加内容如下
10.25.27.116:8848
10.25.27.117:8848
10.25.27.118:8848
2.4、初始化nacos所需数据库
本次为了方便直接使用宿主机的mysql数据库(宿主机之前装过,懒得再装一遍了,并且安装mysql也不是本篇文章的重点),有需要的可以单独创建一个docker容器作为mysql的安装服务器。无论mysql安装在哪里,都需要保证安装nacos的服务器能连接到myslq的ip地址。
# 在三台资源服务器上测试mysqlIP的连通性。
ping 192.168.200.129
使用数据库工具连接准备好的数据库,新建数据库nacos_config_cluster,然后执行/home/test01/nacos/conf目录下的nacos-mysql.sql数据库脚本,创建对应的几张表。
2.5、配置连接数据库
修改nacos/conf目录下的application.properties文件,在尾部追加一下内容:
# 尾部追加以下内容(根据实际情况连接数据库)
spring.datasource.platform=mysql #使用mysql方式持久化
db.num=1
#ip、端口号、数据库名根据自己情况进行修改。
db.url.0=jdbc:mysql://192.168.200.129:3306/nacos_config_cluster?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
#数据库连接用户名
db.user=XXXX
#数据库连接密码
db.password=XXXXXX
三、依次启动三个nacos节点
使用scp将116配置好的nacos复制到另外两台服务器
scp -r test01@10.25.27.116:/home/test01/nacos ./
启动nacos
cd /home/test01/nacos/bin
./startup.sh
#查看当前服务器节点数
ps -ef|grep nacos|grep -v grep|wc -l
注意:觉得启动后jvm占用内存大的,可以修改startup.sh文件中的jvm启动参数。
四、采用nginx负载均衡器(116服务器)
4.1、安装nginx依赖组件pcre
上传安装包到/home/test01/software目录下。
# 解压安装包
tar -zxvf pcre-8.37.tar.gz
# 进入目录
cd pcre-8.37
# 执行configure
./configure
# 编译
make
# 安装,目录创建失败可以使用root用户
make install
# 查看版本
pcre-config --version
4.2、安装nginx
上传安装包到/home/test01/software目录下。
# 解压安装包
tar -zxvf nginx-1.17.0.tar.gz
# 进入目录
cd nginx-1.17.0
# 执行configure
./configure --prefix=/home/test01/nginx
# 编译并安装
make && make install
4.3、修改nginx的配置conf
进入/home/test01/nginx/conf目录下编辑nginx.conf文件,在http{ 后面修改或添加如下配置
upstream cluster{
# ip地址根据自己实际情况配置
server 10.25.27.116:8848;
server 10.25.27.117:8848;
server 10.25.27.118:8848;
}
server {
listen 8012;
server_name localhost;
location / {
proxy_pass http://cluster;
}
}
4.4、启动或刷新nginx
/home/test01/nginx/sbin/nginx -c /home/test01/nginx/conf/nginx.conf
116容器开启8012端口映射,映射到宿主机的8012端口。具体详情见上篇文章或者自行百度。
浏览器中输入宿主机地址访问nginx: http://192.168.200.129:8012/nacos,账号密码初始都是nacos,点击集群查看nacos集群状态。