文章目录
序言
在生产环境中,一般使用Nacos保证高可用,这里部署三个节点Nacos,通过Nginx负载均衡,服务架构如下图
预备环境准备
请确保是在环境中安装使用
- 使用Linux系统;
- 安装64 bit JDK 1.8+;
- 3个或3个以上Nacos节点才能构成集群。
下载安装包
- 下载最新版Nacos:https://github.com/alibaba/nacos/releases/tag/1.4.0
- 下载Nginx: http://nginx.org/en/download.html
- 准备三台Centos虚拟机,设置IP使彼此互通,关闭防火墙,安装JAVA1.8 环境
搭建Nacos集群
数据库配置
解压nacos-server-1.4.0.tar.gz安装包,在nacos\conf目录下找到nacos-mysql.sql文件
新建数据库nacos
执行nacos-mysql.sql文件里面的sql
在Linux中安装并启动Nacos服务
nacos-server-1.4.0.tar.gz安装包到指定目录并解压,我这里安装到/usr/local目录
tar -zxvf nacos-server-1.4.0.tar.gz
数据库与集群配置
修改nacos/conf/application.properties数据库配置,修改为自己的数据库url,用户名和密码
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.138.8:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
进入/usr/local/nacos/conf 中复制一份配置文件 cp cluster.conf.example cluster.conf
cd /usr/local/nacos/conf
cp cluster.conf.example cluster.conf
编辑 cluster.conf配置文件做如下修改
#it is ip
#example
192.168.138.8:8848
192.168.138.9:8848
192.168.138.10:8848
修改nacos 启动脚本
修改/usr/local/nacos/bin
目录下的startup.sh
# 找到如下
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
# 修改$HOME/jdk/java为自己的jdk安装目录
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_191
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
注册Nacos服务,并设置为开机启动项
vim /etc/systemd/system/nacos.service
添加如下内容,/usr/local/nacos
改为自己的nacos安装目录
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
将Nacos服务设置为开机启动项
systemctl enable nacos
启动Nacos服务
systemctl start nacos
查看Nacos启动状态
ps -ef | grep nacos
systemctl status nacos
Nacos单机验证
在浏览器输入http://192.168.138.8:8848/nacos
,用户名密码均为nacos
,可以看到192.168.138.8
虚拟机的Nacos已经启动成功
Nacos集群部署
在192.168.138.9
和192.168.138.10
服务器重新进行在Linux中安装并启动Nacos服务
的操作,则完成Nacos集群
访问http://192.168.138.8:8848/nacos
,http://192.168.138.9:8848/nacos
和http://192.168.138.10:8848/nacos
的集群管理->节点列表,显示都是如下
配置Nginx负载均衡
解压nginx
这里安装到192.168.138.8
服务器的/usr/local
目录
tar -zxvf nginx-1.18.0.tar.gz
需要安装gcc和make环境
yum install -y gcc-c++ make
安装第三方的开发包
1 PERE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。
nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
yum install -y pcre pcre-devel
2 zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
3 openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,
并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
安装与配置nginx
进入nginx-1.18.0
目录
cd nginx-1.18.0
设置安装路径为/usr/local/nginx
./configure --prefix=/usr/local/nginx
make
make install
修改配置文件,配置文件在/usr/local/nginx/conf/nginx.conf
,添加如下配置
upstream nacos {
server 192.168.138.8:8848;
server 192.168.138.9:8848;
server 192.168.138.10:8848;
}
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://nacos;
}
}
将nginx设置为开机启动项
vim /etc/systemd/system/nginx.service
添加如下内容,/usr/local/nginx
改为自己的nginx安装目录
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
将nginx服务设置为开机启动项
systemctl enable nginx
启动nginx服务
systemctl start nginx
查看nginx启动状态
ps -ef | grep nginx
systemctl status nginx
负载均衡集群验证
访问http://192.168.138.8:8080/nacos
,也是可以看到nacos的三个集群节点,至此,nacos的集群已经搭建完成