nacos源自阿里的开源项目,可以充当分布式的微服务注册中心、配置中心,可想而知它的地位非常重要,非常重要,非常重要,但是nacos官网介绍的集群部署过于简单,其实在搭建nacos集群的过程中(和单机版是有一些区别的),尤其是对于新手还是有一些坑要采,在这里记录一下踩坑的过程,可以供大家参考,这个也是为了后面的springCloud准备的
nacos的持久化目前只支持mysql数据库的,对于nacos来说mysql数据库也是完全够用的,mysql环境可以参考docker搭建nacos集群的mysql数据库部分
这里就不做过多说明了
本次使用的是nacos-server-1.4.1.tar.gz版本,这个版本的mysql数据库驱动jar包是8.0.16版本,所以我这次打算连接mysql8+以上的版本,就不再考虑mysql5.7版本了
下载nacos-server-1.4.1.tar.gz到 /usr/local/src目录下
mkdir /usr/local/src/nacoscluster
cd /usr/local/src/nacoscluster
mkdir node1 node2 node3
cp /usr/local/src/nacos-server-1.4.1.tar.gz /usr/local/src/nacoscluster
tar -zxvf /usr/local/src/nacos luster/nacos-server-1.4.1.tar.gz
修改cluster.conf文件:
cp /usr/local/src/nacos/conf/cluster.conf.example /usr/local/src/nacos/conf/cluster.conf
vim /usr/local/src/nacos/conf/cluster.conf
加上下面三行保存退出:
192.168.227.45:8551
192.168.227.45:8552
192.168.227.45:8553
修改application.properties文件:
vim /usr/local/src/nacoscluster/nacos/conf/application.properties
server.port=8551
db.num=1
db.url.0=jdbc:mysql://192.168.227.45:3309/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
db.user.0=root
db.password.0=root
注意:这里配置数据库的db.url.0的值一般没有加allowPublicKeyRetrieval=true,启动nacos时会报错
修改startup.sh文件(两处):
export SERVER="nacos-server"
export MODE="cluster"
export FUNCTION_MODE="all"
export PORT="8848"
while getopts ":m:f:s:p:" opt
do
case $opt in
m)
MODE=$OPTARG;;
f)
FUNCTION_MODE=$OPTARG;;
s)
SERVER=$OPTARG;;
p)
PORT=$OPTARG;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
注意:这两个地方一定要修改,否则nacos启动时会报Unable to start Embedded tomcat
修改shutdown.sh文件
# 新加内容
PORT=$1
if [ ! $PORT ]; then
echo "please select stop port!" >&2
exit 1
fi
# 添加PORT过滤
pid=`ps ax | grep -i 'nacos.nacos' |grep java |grep ${PORT} | grep -v grep | awk '{print $1}'`
cp /usr/local/src/nacos/* /usr/local/src/nacoscluster/node1/
cp /usr/local/src/nacos/* /usr/local/src/nacoscluster/node2/
cp /usr/local/src/nacos/* /usr/local/src/nacoscluster/node3/
只需要修改node2和node3的application.properties中的server.port分别为8552,8553
启动nacos实例:
sh /usr/local/src/nacoscluster/node1/bin/startup.sh -p 8551
sh /usr/local/src/nacoscluster/node2/bin/startup.sh -p 8552
sh /usr/local/src/nacoscluster/node3/bin/startup.sh -p 8555
查看日志:
tail -f /usr/local/src/nacoscluster/node1/logs/start.out
tail -f /usr/local/src/nacoscluster/node2/logs/start.out
tail -f /usr/local/src/nacoscluster/node3/logs/start.out
如果启动日志显示如下,说明nacos集群启动成功
node1启动日志
node2启动日志
node3启动日志
依次访问以下地址,输入用户名:nacos, 密码:nacos
192.168.227.45:8551/nacos
192.168.227.45:8552/nacos
192.168.227.45:8553/nacos