首先官方文档地址: nacos.io/zh-cn/docs/cluster-mode-quick-start.html官方部署文档
默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的.
为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。
集群部署架构图
需注意的点
1.安装数据库,版本要求:5.6.5+
2.初始化mysql数据库,数据库初始化文件: nacos-mysql.sql
3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数
据源的url、用户名和密码。
本次搭建架构: 1个Nginx+3个nacos注册中心+1个mysql
3个或3个以上Nacos节点才能构成集群。
开始搭建:
1.下载nacos
点击下载
利用文件传输工具,上传到linux的目录下
这时我们看到,在linux的目录下,已经有我们下载好的安装包了
2.安装
在nacos的安装包目录下,解压
tar -zxvf nacos-server-2.0.2.zip
如果上面的命令报错,就用下面这个解压
unzip nacos-server-2.0.2.zip
复制解压后的文件到制定的目录
先在根目录下,创建文件夹:mynacos
mkdir /mynacos
复制三个节点的nacos
cp -r nacos /mynacos
进入mynacos,目录如下:
logs和work是后面自动生成的,不用管
复制一次,重命名一次,最终效果如下图:
3.修改配置文件
进入bin目录,备份一下启动文件
cp startup.sh startup.sh.bak
关于nacos数据库配置,详见我的另外一篇文章:Nacos2.0.2安装启动报错问题
备份原始的配置文件
cp application.properties application.properties.init
修改配置文件
vim application.properties
将默认的port8848改为3333,后面修改节点4444和节点5555一样
加入以下配置:根据自己的情况修改
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?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=mima
数据库连接超时时间设置大一些:
Ctrl+c退出编辑模式,输入:wq保存修改
:wq
复制nacos集群配置文件,并重命名为cluster.conf
cp cluster.conf.example cluster.conf
目录状态如下:
查询自己网卡的ip地址
hostname -i
如果看不到,将i换成大写的I
hostname -I
修改cluster.conf配置文件
注销掉示例配置,根据自己ip,添加一下三个节点的ip配置
vim cluster.conf
192.168.201.128:3333
192.168.201.128:4444
192.168.201.128:5555
退出并保存
修改startup.sh
由于我用的nacos版本是2.0.2,默认是集群配置,下面的是一个1.1.4版本的nacos情况
2.0.2版本nacos的startup.sh原配置。不需要改这里
降低nacos启动所需内存
4.安装nginx
先准备nginx相关素材(依赖)
联网下载命令:
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
如果下载失败,在命令后面追加 --no-check-certificate
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz --no-check-certificate
解压
tar -xvf pcre-8.37.tar.gz
进入解压以后的pcre-8.37文件夹,执行命令
./configure
这里最后我的报错了,如果你的没报错,后面可以跳过
解决:configure: error: You need a C++ compiler for C++ support.[系统缺少c++环境]
解决办法:
挂载系统安装光盘
mount /dev/cdrom /mnt/cdrom/
修改yum源
修改/etc/yum.repos.d目录下的CentOS-Media.repo配置文件,修改之前建议先备份
cd /etc/yum.repos.d/
vim CentOS-Media.repo
在baseurl 中修改第2个路径为/mnt/cdrom(即为光盘挂载点)
将enabled=0改为1
修改后内容如下:
保存退出
清理
yum clean all
执行yum命令
yum install postgresql
查询安装前c++环境状态
whereis g++
空的,说明没有安装
安装c++环境
yum install gcc-c++
安装完毕以后,再查询,已经有了
再次执行上次报错的命令:
./configure
如果上次执行上面的命令没报错,从这里开始接着安装
编译安装命令:
make && make install
到这里nginx需要的第一个依赖安装完毕了
可以查看我们安装的pcre的版本号
pcre-config --version
建立软连接
ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1
5.安装zlib和openssl
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
6.安装nginx1.12.2版本
nginx下载 点击下载
将下载好的压缩包,上传至linux目录
解压
tar -xvf nginx-1.12.2.tar.gz
进入nginx解压后的目录,执行检查命令
./configure
编译并安装nginx
make && make install
安装成功以后,会在/usr/local目录下生成一个nginx文件夹
sbin里面有nginx启动脚本
进入sbin目录启动nginx
./nginx
浏览器通过虚拟机的ip+80端口访问nginx,80可以省略
http://192.168.201.128/
访问成功
修改nginx的配置文件,记得先备份nginx.conf
按照下图提示修改
启动nacos集群,进入mynacos目录
./nacos3333/bin/startup.sh
./nacos4444/bin/startup.sh
./nacos5555/bin/startup.sh
查看nacos集群运行数量
ps -ef|grep nacos|grep -v grep | wc -l
如果nginx已经启动,先停掉
./nginx -s stop
进去nginx目录
cd /usr/local/nginx/sbin
启动nginx
./nginx -c /usr/local/nginx/conf/nginx.conf
查看nginx状态
ps -ef | grep nginx
通过nginx,访问nacos
http://192.168.201.128:1111/nacos/#/login
查看nacos三个节点状态
总体架构