Linux系统中nacos集群搭建看这一篇就够了

  • Post author:
  • Post category:linux




提前预知

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

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

为什么要使用Ngnix?

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

Nacos集群介绍

在这里插入图片描述


我们要实现的集群形式如下

:需要1个Nginx+3个nacos注册中心+1个mysql

在这里插入图片描述

其实做集群挺好玩的,就是有点费硬件,为了真正实现上面的集群,我们需要准备五台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安装

我一般都是将软件安装在

/usr/lib

目录下面,不同的人有不同的风格,你可以安装在别的目录下面,这个不在啰嗦!!

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

下载好之后,通过远程连接工具将下载的文件传输到Linux的

/usr/lib

目录下面:

在这里插入图片描述

注意:解压即安装在

/usr/lib

目录下面执行命令:


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


在这里插入图片描述



单机版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

在这里插入图片描述

链接测试:

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

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

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

在这里插入图片描述



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/

目录下面:

在这里插入图片描述

如何建表:

我的方法

是将这个SQL文件传输到我的Win本机,然后用

数据库可视化连接工具

,连接我的MySQL数据库,执行这个SQL文件:

在这里插入图片描述

执行完的结果图:

在这里插入图片描述

注意:

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

    因为数据没有被所有节点共享

    ),官网中也说了可以使用自带的嵌入式数据库做集群

  • 官网说明如下



    在这里插入图片描述



修改Nacos的application.properties配置文件

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

Nacos的配置文件在

/usr/lib/nacos1/nacos/conf

下面的:

application.properties

先备份:

- cp application.properties  application-副本.properties

在这里插入图片描述

再修改:

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

在这里插入图片描述

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

目录下面

在这里插入图片描述

先备份:

cp nginx.conf  nginx-副本.conf

再修改:

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



/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


在这里插入图片描述



版权声明:本文为weixin_45583303原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。