最近工作接手一个调整项目框架的活,我被分配到搭建nacos注册中心的工作;nacos注册中心是alibaba旗下的一个开源组件,它提供了SpringCloud alibaba 微服务架构的注册中心以及配置中心功能,并且提供了比较直观的可视化界面;本篇文章就来介绍如何搭建nacos集群
Linux系统:CentOS7-2009
三台主机: 192.168.64.70 192.168.64.71 192.168.64.72
nacos:nacos-2.0.2
MySQL:MySQL8.0.15;
地址:192.168.64.71:3306
nacos下载地址:https://github.com/alibaba/nacos/tags
下载好后上传至Linux服务器,这里以 /usr/local/ 路径为例
上传好nacos安装包执行以下操作
# 进入nacos上传目录 cd /usr/local/ # 解压安装包 tar -zxvf nacos-server-2.0.2.tar.gz # 解压好后进入nacos配置目录 cd nacos/conf/ # 复制一份cluster.conf.example并命名为cluster.conf mv cluster.conf.example cluster.conf
nacos集群模式的工作是将一切注册或配置信息以及存储在数据库中,各个nacos的节点也是从数据库中获取各个用户注册以及配置信息;因此我们需要另外准备好数据库服务器,这里以mysql为例;
在nacos安装目录conf文件夹下有一个 nacos-mysql.sql 脚本文件,此脚本是nacos存储数据库表结构脚本,我们需要把它导入到准备好的mysql服务器
mysql服务器准备好后修改conf目录中的 cluster.conf 和 application.properties 配置
每台服务器都要改并保持一致
# 编辑 vim cluster.conf # 添加以下配置 192.168.64.70:8848 #这几个地址为安装nacos的所有服务器地址以及设置的端口号 192.168.64.71:8848 192.168.64.72:8848
# 编辑 vim application.properties # 修改以下几处配置 # 配置nacos访问uri(一般按默认就行了) server.servlet.contextPath=/nacos # 配置nacos访问端口(一般按默认8848就可以了) server.port=8848 # 指定数据库类型(这里指定数据库为mysql) spring.datasource.platform=mysql # 数据库实例数量 db.num=1 # 数据库访问地址(即准备好的数据库服务器地址) db.url.0=jdbc:mysql://192.168.64.71:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC # 数据库访问用户名 db.user.0=root # 数据库访问密码 db.password.0=xiang@2021
此时nacos就安装完成,每台机器都按照以下命令启动
# 进入 cd /usr/local/nacos/bin/ # 启动nacos sh startup.sh
启动nacos通用命令如下:
启动成功后通过 ip:端口号/nacos 访问nacos(注意先关闭物理机与虚拟机的防火墙),出现以下界面表示启动成功
nacos安装好后需要手动开启关闭,可以设置开机自启,执行以下命令
# 编辑开机自启脚本 vim /lib/systemd/system/nacos.service # 添加以下内容 [Unit] Description=nacos After=network.target [Service] Type=forking Environment="JAVA_HOME=/usr/local/jdk1.8" # 启动后面可以加上 -m standalone/cluster 表示以单机/集群方式启动,默认为集群 ExecStart=/usr/local/nacos/bin/startup.sh ExecReload=/usr/local/nacos/bin/shutdown.sh ExecStop=/usr/local/nacos/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target
配置完成后启动服务,执行以下命令
#重新加载服务 systemctl daemon-reload #启用服务 systemctl enable nacos.service #启动服务 systemctl start nacos.service