Nacos高可用集群搭建
nacos官方给出的集群架构图不太明确,下面我自己绘了一个图,接下来一步步安装测试:
安装准备
- centos7环境
- nacos-1.3.1
- nginx-1.19.1
- mysql-8.0.20
- jdk-1.8+
1.我这里安装时是先安装了一个虚拟机,然后再克隆两个虚拟机组成三个节点的nacos集群。克隆的虚拟机配置一下网络问题就OK。
2.nacos从GitHub上下载很慢我已经准备好放蓝奏云上了,需要的可以下载速度很快。nacos-1.3.1下载地址
3.这里只演示安装nacos,所以默认大家已经装了nginx和mysql,我也给大家提供一下这两个的安装步骤,是程序羊总结的软件安装手册,这个对于初学者很有用我也放云上了,刚需自取!!! Java开发软件安装手册
4.实验环节nginx和mysql我们只需要单机安装即可。
5.虚拟机的firewalld要关闭
6 要保证三个虚拟机能ping通外网,同时虚拟机之间也能互通。
安装nacos
- 在/usr/local/(这个目录一般放系统管理员在本机安装自己下载的软件)目录下新建一个nacos目录,专门放置nacos 。mkdir nacos
- 在/usr/local/nacos目录下解压nacos安装包 tar -zxvf nacos-server-1.3.1.tar.gz
- 进入bin目录,当前目录下执行 ./startup.sh -m standalone 就可单节点启动nacos
出现以上提示说明单节点启动成功,在浏览器中输入虚拟机ip地址:8848/nacos可正常访问就表示安装成功的,还是特别简单的。
nacos持久化切换配置
nacos在没有使用外部数据源的情况下,使用的是Apache的Derby内嵌数据库,所以当我们退出nacos界面或重启nacos时再次启动数据也不会丢失,但是我们以后要做集群,如果启动多个nacos实例,都使用自己内嵌数据库显然不合理,导致数据一致性问题。所以我们采用集中式存储的方式来支持集群化部署。其实也很简单直接修改nacos的配置文件即可。
步骤如下:
- 在自己的数据库服务器上新建一个名为nacos_config的数据库,注意是英文下划线;
- cd /usr/local/nacos/conf 找到nacos-mysql.sql文件,复制里面的内容或者直接用数据库工具执行这个SQL。
- 给application.properties文件做个备份,目的是如果这个配置文件被我们玩坏了还可以恢复原样 cp application.properties application.properties.bk
- 修改application.properties文件内容并添加以下配置:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://你的mysql服务器IP地址:端口号/nacos-config?characterEncoding=utf8&connectionTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=你的用户名 db.password=你的数据库密码
- 1
- 2
- 3
- 4
- 5
- 6
5.nacos关闭重启后去nacos的logs目录下找start.out日志用cat命令查看会发现如下:
如果显示划横线的字样说明nacos使用外部存储表示安装成功。
集群配置文件的修改
- 同样在conf目录下,nacos官方给的集群部署配置示例文件是cluster.conf.example文件,我们先拷贝一份做正式工的配置文件 cp cluster.conf.example cluster.conf
- 修改cluster.conf文件,这里的配置非常简单,把作为集群的几台机器的IP地址和占用的端口号写入即可,这里以我的为例:
3.保存重启nacos。
其他节点的配置
在其他机器上同样是修改application.properties和cluster.conf两个文件,所以nacos的集群的配置十分简单。而且都可以单个启动很灵活!
安装nginx进行分流负载均衡
nginx的安装这里不进行演示,安装手册中很详细。这里只说明nginx怎么配置,如下:
- nginx安装后默认的配置文件在/usr/local/nginx/conf/nginx.conf,直接修改这里面的配置文件即可,
- 先修改nginx的监听端口如下:
我改的是1111,这个不需要统一修改为什么。
3.负载均衡的配置如下:
nginx的upstream配置方式有几种,这里就采用默认的轮询方式。
4.修改保存后去nginx的启动文件处重新加载一下配置文件也可以测试有没有语法错误:
./nginx -s reload
./nginx -t
集群的启动
1.在每个机器的nacos安装目录的bin目录下执行 ./startup.sh 命令,成功时如下:
划横线的地方显示以集群的方式启动了。在其他机器上也启动起来
2.启动nginx
3.浏览器中访问nginx的1111端口看是否能进入nacos的界面
访问成功,集群配置成功。
集群状态下的服务注册
服务提供者的注册地址应该是NGINX的地址,注册请求由NGINX转发到实际的nacos三个机器上。