文章目录

  • 提前预知
  • Linux中的JDK安装和配置
  • Linux系统中MySQL数据的安装和配置
  • Linux系统中Ngnix服务器的安装和配置
  • Linux系统中Nacos的安装和配置
  • Nacos下载
  • Nacos安装
  • 单机版Nacos测试连接
  • Nacos集群打造
  • 准备阶段
  • 数据库准备
  • 修改Nacos的application.properties配置文件
  • 修改Nacos的nacos的集群配置文件cluster.conf
  • 启动方式
  • 使用Ngnix作为负载均衡器
  • 最后测试

提前预知

为什么要做集群,有什么用?

  • 其实就是为了应用的高可用,避免一台挂了,导致应用不可用

为什么要使用Ngnix?

  • 因为这玩意抗揍,能支持高并发不挂机
  • 其实不使用Ngnix服务器也可以,只不过没有这么抗揍

Nacos集群介绍

nacos 集群 断掉一个节点 微服务十分不稳定_端口号

我们要实现的集群形式如下:需要1个Nginx+3个nacos注册中心+1个mysql

nacos 集群 断掉一个节点 微服务十分不稳定_端口号_02

其实做集群挺好玩的,就是有点费硬件,为了真正实现上面的集群,我们需要准备五台Linux服务器或者五个Linux虚拟机:

虚拟机IP

安装软件

192.168.1.101

安装Ngnix服务器

192.168.1.102

安装Nacos服务1

192.168.1.103

安装Nacos服务2

192.168.1.104

安装Nacos服务3

192.168.1.105

安装MySQL服务

我的硬件扛不住,我就在一个虚拟机上做,配置如下:

虚拟机IP

安装软件

192.168.1.101

安装Ngnix服务器, 安装Nacos服务1,安装Nacos服务2,安装Nacos服务3 ,安装MySQL服务

Nginx服务抗揍,只要这个Nginx服务不挂,下面的三个节点只要有一个活着就行,三台Nacos同时都挂机这种情况应该不常见吧!!

Linux虚拟机安装传送门:Linux虚拟机安装看看这里!!!!

Linux环境要求:

  • java8及其以上的JDK
  • 5.6.5+的MySQL数据库
  • Ngnix服务器
  • Nacos注册中心

Linux中的JDK安装和配置

参考链接:Linux系统中安装JDK

Linux系统中MySQL数据的安装和配置

参考链接:Linux系统中安装MySQL

Linux系统中Ngnix服务器的安装和配置

参考链接:Linux系统中安装Nginx

Linux系统中Nacos的安装和配置

Nacos下载

Nacos下载Linux版:Github地址

nacos 集群 断掉一个节点 微服务十分不稳定_服务器_03

Nacos安装

我一般都是将软件安装在/usr/lib目录下面,不同的人有不同的风格,你可以安装在别的目录下面,这个不在啰嗦!!

注意:通过Xftp向Linux系统中拖拽文件时,需要修改Linux系统中文件夹的权限
往哪个文件夹中上传文件,就要修改那个文件夹的权限
此处修改/usr/lib文件夹的权限
修改权限需要使用管理员权限:su root
修改权限,在usr目录下执行命令:chmod 777 /usr/lib


下载好之后,通过远程连接工具将下载的文件传输到Linux的/usr/lib目录下面:

nacos 集群 断掉一个节点 微服务十分不稳定_linux_04


注意:解压即安装在/usr/lib目录下面执行命令:

tar -zxvf nacos-server-1.4.2.tar.gz

nacos 集群 断掉一个节点 微服务十分不稳定_linux_05

单机版Nacos测试连接

我们刚开始使用单机版的Nacos进行测试,在测试之前我们先要开放Nacos的端口号:8848

直接访问可能访问不到,因为Linux中有防火墙,下面对防火墙进行设置:
- 查看开放的端口号:firewall-cmd --list-all
- 设置开放端口号:sudo firewall-cmd --add-port=8848/tcp --permanent
- 重启防火墙:firewall-cmd --reload

现在外部就可以访问8848端口了


启动Nacos,在/usr/lib/nacos/bin目录下面,执行下面的命令启动:

./startup.sh -m standalone
  • 1

nacos 集群 断掉一个节点 微服务十分不稳定_运维_06

链接测试:

访问方式为:IP+端口号
我的虚拟机IP为:192.168.1.101

所以访问链接为:http://192.168.1.101:8848/nacos/

初始的账号和密码都是:nacos


nacos 集群 断掉一个节点 微服务十分不稳定_配置文件_07

Nacos集群打造

准备阶段

集群打造其实也不难,有了上面的基础就好做了,我们在/usr/lib/目录下新建三个目录:

[root@localhost lib]# mkdir nacos1
[root@localhost lib]# mkdir nacos2
[root@localhost lib]# mkdir nacos3


将Nacos服务的压缩包分别解压到这三个目录下面:

[root@localhost lib]# tar -zxvf nacos-server-1.4.2.tar.gz  -C nacos1

[root@localhost lib]# tar -zxvf nacos-server-1.4.2.tar.gz  -C nacos2

[root@localhost lib]# tar -zxvf nacos-server-1.4.2.tar.gz  -C nacos3


数据库准备

在集群中我们使用的持久化方案是,将数据存储到关系型数据库MySQL中(其实也只支持MySQL),我们需要先在我们的MySQL数据库中建一个名字为nacos_config的数据库,建表语句在/usr/lib/nacos1/nacos/conf/目录下面:

nacos 集群 断掉一个节点 微服务十分不稳定_服务器_08


如何建表:我的方法是将这个SQL文件传输到我的Win本机,然后用数据库可视化连接工具,连接我的MySQL数据库,执行这个SQL文件:

nacos 集群 断掉一个节点 微服务十分不稳定_配置文件_09


执行完的结果图:

nacos 集群 断掉一个节点 微服务十分不稳定_运维_10


注意:

  • MySQL也可以使用集群(官网也是这样建议的),我们此处没有使用
  • Nacos中本身也自带了一个嵌入式的数据库,但是如果做集群的话使用这个自带的嵌入式的数据库可能会发生数据冲突(因为数据没有被所有节点共享),官网中也说了可以使用自带的嵌入式数据库做集群
  • 官网说明如下

修改Nacos的application.properties配置文件

要养成一个好习惯,就是修改配置文件的时候,先将这个配置文件备份一下,如果出错还可以重来,给自己留一条后路。

Nacos的配置文件在/usr/lib/nacos1/nacos/conf下面的:application.properties

先备份:

- cp application.properties  application-副本.properties


nacos 集群 断掉一个节点 微服务十分不稳定_运维_11


再修改:

vim application.properties


配置文件,在文件中添加如下内容:

  • 注意:数据库的名称为nacos_config
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=12345678
  • 1

nacos1端口号为8847,nacos1端口号为8848,nacos1端口号为8849

如法炮制,修稿nacos2和nacos3的配置文件

修改Nacos的nacos的集群配置文件cluster.conf

这个配置文件在/usr/lib/nacos1/nacos/conf目录下,名字为:cluster.conf.example

我们先拷贝一份:

cp  cluster.conf.example  cluster.conf

再修改:

vim cluster.conf

配置文件,在文件中添加如下内容:

  • 注意:IP为虚拟机的IP,后面的端口号为我们集群中各个Nacos的端口号
192.168.1.101:8847
192.168.1.101:8848
192.168.1.101:8849
  • 设置完之后,记得打开这些端口号
- 查看开放的端口号:firewall-cmd --list-all
- 设置开放端口号:sudo firewall-cmd --add-port=8847/tcp --permanent
- 重启防火墙:firewall-cmd --reload

启动方式

还记得上面演示的单机版的Nacos的启动方式吗?如下:

./startup.sh -m standalone

注意:集群的启动方式和单机版的不一样,如下,切记:三个Nacos服务都要使用这个命令启动

分别在/usr/lib/nacos1/nacos/bin/usr/lib/nacos1=2/nacos/bin/usr/lib/nacos3/nacos/bin目录下执行下面的命令:

./startup.sh

使用Ngnix作为负载均衡器

修改nginx的配置文件:nginx.conf

该文件的位置在:/usr/local/nginx/conf目录下面

nacos 集群 断掉一个节点 微服务十分不稳定_端口号_12


先备份:

cp nginx.conf  nginx-副本.conf

再修改:

nacos 集群 断掉一个节点 微服务十分不稳定_linux_13

upstream cluster{
 server 192.168.1.101:8847;
 server 192.168.1.101:8848;
 server 192.168.1.101:8849;
}
  • 修改完记得开放端口号:1111
- 查看开放的端口号:firewall-cmd --list-all
- 设置开放端口号:sudo firewall-cmd --add-port=1111/tcp --permanent
- 重启防火墙:firewall-cmd --reload

最后测试

截止到此处,1个Nginx+3个nacos注册中心+1个mysql已经配置完毕了,下面开始测试

在前面已经启动了3个nacos服务:

查看nacos进程启动数:ps -ef | grep nacos | grep -v grep | wc -l

单独访问一下,看看实例是否都成功起来:

- http://192.168.1.101:8847/nacos/#/login
- http://192.168.1.101:8848/nacos/#/login
- http://192.168.1.101:8849/nacos/#/login

nacos 集群 断掉一个节点 微服务十分不稳定_配置文件_14


nacos 集群 断掉一个节点 微服务十分不稳定_配置文件_15


nacos 集群 断掉一个节点 微服务十分不稳定_服务器_16

/usr/local/nginx/sbin/目录下启动nginx,注意启动的时候要指定配置文件为刚才配置的那个!!!

./nginx -c /usr/local/nginx/conf/nginx.conf

查看nginx进程:ps -ef|grep nginx

测试通过nginx,访问nacos:http://192.168.1.101:1111/nacos/#/login

nacos 集群 断掉一个节点 微服务十分不稳定_服务器_17