【Nacos】本地集群部署

关于Nacos已经展开了四篇入门文章:

初探Nacos(一)-- 单机模式启动

初探Nacos(二)-- SpringCloud使用Nacos的服务注册与发现

初探Nacos(三)-- SpringBoot下整合Dubbo和Nacos

初探Nacos(四)-- SpringBoot下使用Nacos作为配置中心

今天,我们开始进一步探索Nacos的使用,分布式集群模式部署Nacos。(另外,目前的Nacos1.0.0稳定版已发布,目前测试暂没有发现问题,我们重新使用1.0.0来演示。)

当然,我们仍然参考官方文档:集群部署说明,由于集群模式需要用到数据库,此处我们默认你已安装好Mysql数据库, 然后我们到https://github.com/alibaba/nacos/releases下载最新的安装包。

wget https://github.com/alibaba/nacos/releases/download/1.0.0/nacos-server-1.0.0.zip
复制代码

unzip nacos-server-1.0.0.zip

cd nacos

cp conf/cluster.conf.example conf/cluster.conf

需要配置3个或3个以上节点,生产环境建议分布在多台服务器上,目前咱们仅在一台机器上测试。

vi conf/cluster.conf

127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850
复制代码

然后进入mysql,创建名为nacos_config的数据库 ,导入config/nacos-mysql.sql。(此处测试暂时使用单机数据库,建议生产环境采用主从等高可模式)

建完数据库完后,官方文档上默认使用的是内嵌的cmdb数据库,没有Mysql数据库的配置,有点让人懵逼的,百度了一下,找到了配置。

vi conf/application.properties

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=数据库用户名
db.password=数据密码
复制代码

另外,由于我们在一台机器上跑三个,因此启动脚本和关闭脚本需要做一点修改。

cp bin/startup.sh bin/startup-port.sh

vi bin/startup-port.sh

export MODE="cluster"
export FUNCTION_MODE="all"
export SERVER_PORT="8848"
while getopts ":m:f:p:" opt
do
case $opt in
m)
MODE=$OPTARG;;
f)
FUNCTION_MODE=$OPTARG;;
p)
SERVER_PORT=$OPTARG;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
JAVA_OPT="${JAVA_OPT} -Dserver.port=${SERVER_PORT}"
复制代码

cp bin/shutdown.sh bin/shutdown-port.sh

vi bin/shutdown-port.sh

PORT=$1
if [ ! $PORT ]; then
echo "please select stop port!" >&2
exit 1
fi pid=`ps ax | grep -i 'nacos.nacos' |grep java |grep ${PORT} | grep -v grep | awk '{print $1}'`
复制代码

启动方式如下:

sh bin/startup-port.sh -p 8848

sh bin/startup-port.sh -p 8849

sh bin/startup-port.sh -p 8850

关闭方式如下:

sh bin/shutdown-port.sh 8848

sh bin/shutdown-port.sh 8849

sh bin/shutdown-port.sh 8850

启动后就可以在浏览器打开 http://127.0.0.1:8848/nacos/,http://127.0.0.1:8849/nacos/,http://127.0.0.1:8850/nacos/ 即可看到控制台,默认用户名/密码为nacos/nacos。

附1: 可通过Nginx配置只访问一个地址负载均衡到三个节点上:

upstream nacos-cluster{
server 127.0.0.1:8848;
server 127.0.0.1:8849;
server 127.0.0.1:8850;
}
复制代码

附2:集群模式下控制台的用户名密码都存在了数据库的users表,用户名直接修改就行,密码需要用org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder加密。

然后我们就可以在演示项目里尝试,只需在application.properties里将配置由单机模式改成集群模式:

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
复制代码

配置中心的配置需要修改如下:

nacos.config.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
复制代码

dubbo的配置需要修改如下:

dubbo.registry.address=nacos://127.0.0.1:8848?backup=127.0.0.1:8849,127.0.0.1:8850
复制代码

启动项目后,可以测试到服务注册与发现、配置中心等均能像单机模式一样正常使用。我们可以尝试关闭其中一个或两个nacos,仍然不影响系统的正常运行。

转自:https://juejin.im/post/5cbad19ef265da038b20165e

上一篇:Bootstrap CSS概览代码文字标注篇


下一篇:App外包开发周期一般多长?