写点什么

Nacos 在企业生产中如何使用集群环境?

作者:牧小农
  • 2022 年 4 月 30 日
  • 本文字数:2819 字

    阅读完需:约 9 分钟

Nacos在企业生产中如何使用集群环境?

点赞再看,养成习惯,微信搜索【牧小农】关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友。项目源码地址:公众号回复 nacos,即可免费获取源码

前言

由于在公司,注册中心和配置中心都是使用的 Nacos,因为前一段时间比较忙(木有划水时间),没有精力仔细去研究,时间就像海绵里的水,挤一挤总会是有的,出于对技术的好奇心,今天挤了一点时间,终于到了我 牧汉三 出马的时候。今儿个就说一说 Nacos 集群架构是如何搭配,以及在企业中是如何使用的。

Nacos 集群架构

在搭建 Nacos 集群之前,我们首先要了解一下 Nacos 的架构,工欲善其事必先利其器,磨刀不费砍材功,在上一节中,我们了解了 Nacos 基础功能,对 Nacos 的一些基本使用和配置,但是这些在实际工作过程中是远远不够的,我们还需要了解一个非常重要的点,就是对 Nacos 集群相关的操作,首先我们就要从 Nacos 的集群配置开始说起



,


2.1 Nacos 三种部署模式

  • 单机模式:用于测试和单节点使用

  • 集群模式:用于生产环境,确保高可用

  • 多集群模式:用户多数据中心场景

2.2 参考文档

参考网站:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html


部署手册:https://nacos.io/zh-cn/docs/deployment.html


下面我们来看一下 Nacos 的一个具体拆分架构图:


环境准备

对于 Nacos 而言,本身是存在内置的数据库 derby 实现配置持久化,但是为了查看和维护以及配置 nacos 集群方便我们需要将内置数据库配置成本地 MySQL 数据库,同时因为 Nacos 使用的嵌入式实现数据的存储,所以如果启动多个默认配置下的 Nacos 节点,数据存储会存在一致性的问题,为了解决这个问题,Naacos 采用了集中存储方式来支持集群化存储。<b>目前 nacos 仅支持 MySQL 数据库。</b>

3.1 准备工作

  1. 64 bit OS Linux/Unix/Mac,推荐使用 Linux 系统。

  2. 64 bit JDK 1.8+;

  3. Maven 3.2.x+;

  4. 3 个或 3 个以上 Nacos 节点才能构成集群。

  5. Nginx

  6. MySql 5.6.5+


公众号后台回复:nacos 即可获取


在 Linxu 下安装 Nacos

我们需要 3 个或 3 个以上 Nacos 节点才能构成集群,同时也需要一个 Nginx 来模拟负载均衡。


安装包已备好,后台回复 nacos 即可


1. 解压 Nacos

tar -zxvf nacos-server-2.0.3.tar.gz

持久化配置

前面我们已经讲过了,Nacos 默认自带的嵌入式数据库 derby,当我们每次创建一个 Nacos 实例的时候就会有一个 derby,当我们想要搭建 Nacos 集群,出现多个 Nacos 节点的时候,就会出现一致性的问题,所以我们如果要搭建 Nacos 集群,首先要使用 Nacos 支持的外部统一数据管理 MYSQL。


参考官网:https://nacos.io/zh-cn/docs/deployment.html


这里建立的 Mysql 数据库,一定要 Linux 下 Nacos 的可以访问


我们需要找到 Nacos 安装目录下conf目录下的SQL脚本,然后在数据库中执行

1 创建数据库

CREATE DATABASE nacos_config;USE nacos_config;
复制代码

2 执行脚本

找到 nacos 数据库脚本,在刚才创建的数据库中执行



执行成功,如下图所示:


3 修改配置

修改 conf/application.properties文件,增加支持 MySQL 数据源配置


spring.datasource.platform=mysql
db.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTCdb.user=rootdb.password=123456
复制代码

Nacos 集群配置

1. 修改 cluter.conf 文件

我们在正式开始配置集群之前,我们需要修改conf/cluter.conf配置文件,在修改一个文件之前,先进行备份,这一步 Nacos 文件已经帮我们做了,如果没有手动复制一个备份文件


cp cluster.conf cluster.conf.example



在配置集群的时候,不能通过 127.0.0.1 来进行分配,服务器是不知道具体哪台机器,具体的 IP 地址,需要使用conf/cluter.conf来指明对应的 IP 和端口


同时我们修改端口的时候,要有一定的偏移量,因为 Nacos2.0 本身新增了占用端口,在设置端口的时候要避开。




每行配置成 ip:port


ifconfig -a #查看具体 ip


在这里我的 IP 地址为:192.168.137.152


vi cluster.conf


在配置中添加我们需要使用的 IP 和 port


192.168.137.152:8848192.168.137.152:8868192.168.137.152:8888
复制代码

2.编辑启动脚本 startup.sh

修改这个脚本,是为了能够让我们在使用这个命令启动的时候传入对应的端口参数,这样携带具体端口号参数启动就能启动具体的 Nacos 节点,脚本目录为:nacos/bin/startup.sh修改参数:



启动 Nacos

启动命令:


./startup.sh -o 8848

./startup.sh -o 8848

./startup.sh -o 8848


启动以后我们可以查看这个日志文件,是否启动成功



tail -f /usr/local/nacos/nacos/logs/start.out



启动完成之后,我们可以使用下面的命令来测试 Nacos 集群是否正常启动:


ps -ef|grep nacos|grep -v grep |wc -l


一般数量为 3,我这里是启动了三个日志查看,所以是 6



注意:我们在浏览器访问 Nacos 地址的时候,一定要把防火墙关闭


systemctl stop firewalld # 临时关闭

systemctl disable firewalld # 永久关闭


打开任意 IP 和端口下的路径,使用账号密码 nacos/nacos 登录成功后,在 集群管理>节点列表 中可以看到我们三个 nacos 服务,到这里 nacos 此时已经完成全部配置


nginx 负载均衡配置

tar -zxvg nginx-1.14.2.tar.gz # 解压cd nginx-1.14.2 ./configure # 编译make && make install #安装cd /usr/local/nginx/conf/vi nginx.conf  # 修改nginx文件
复制代码


整个文件中只需要使用到下面的配置即可:


下面没有使用 HTTP 请求进行转发,而是使用的 TCP 协议使用 nginx 请求时,需要配置成 TCP 转发,不能配置 http2 转发,否则连接会被 nginx 断开。


worker_processes  1;
events { worker_connections 1024;}
stream { upstream nacos { server 192.168.137.152:8848; server 192.168.137.152:8868; server 192.168.137.152:8888;
}
server { listen 81; proxy_pass nacos; }
}
复制代码

启动 nginx

cd /usr/local/nginx/sbin/ # 进入目录

./nginx #启动


在浏览器上输入网址,查看是否可以启动成功


http://192.168.137.152:81/nacos


添加配置


我们在 config_info表中也看到了对应的添加记录


注册服务到 nacos 中

我们拿上一节中讲到的服务cloud-alibaba-nacos-9001进行注册到 Nacos 集群中,如果成功,表示我们 Nacos 已经可以使用了


yml 配置:


server:  port: 9001spring:  application:    name: nacos-provider  cloud:    nacos:      discovery:        server-addr: http://192.168.137.152:81#      server-addr: localhost:8848
management: endpoint: web: exposure: include: '*'
复制代码


启动成功后,我们在浏览器中就可以看到对应的服务注册到 nacos 了


总结

到这里,我们 Nacos 集群搭建就完成了,有不懂的小伙伴,再下方留言告诉我,小农看到了会第一时间回复,要注意的是,在 nginx 安装那里,可能会有一些包找不到,需要你自己去下载安装,上面都是小农自己一步一步搭建出来的,按照步骤来,是不会有问题的,如果觉得文中对你有帮助,记得点赞关注!


怕什么真理无穷,进一步有进一步的欢喜。大家加油~

发布于: 刚刚阅读数: 2
用户头像

牧小农

关注

业精于勤荒于嬉,行成于思毁于随。 2019.02.13 加入

公众号【牧小农】

评论

发布
暂无评论
Nacos在企业生产中如何使用集群环境?_nacos_牧小农_InfoQ写作社区