当前位置: 首页 > 科技观察

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

时间:2023-03-14 12:20:31 科技观察

前言在公司,注册中心和配置中心都用Nacos,因为前段时间比较忙(没有划水时间),没有精力细细研究,但是时间如水海绵,挤压它总会有拥挤。出于对技术的好奇,今天终于到了我沐寒三出门的时间。就说说Nacos集群架构是怎么搭配的吧。Nacos集群架构在搭建Nacos集群之前,我们首先要了解Nacos的架构。工欲善其事,必先利其器。Nacos的一些基本使用和配置,但是在实际工作过程中这些是远远不够的。我们还需要了解一个很重要的点,就是Nacos集群相关的操作。首先,我们要从Nacos的集群配置说起。2.1Nacos三种部署模式单机模式:用于测试和单节点使用。集群模式:用于生产环境,保证高可用。多集群模式:用户拥有多个数据中心的场景。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采用了集中存储的方式来支持集群存储。目前nacos只支持MySQL数据库。3.1准备工作64位操作系统Linux/Unix/Mac,推荐使用Linux系统。64位JDK1.8+;Maven3.2.x+;3个及以上Nacos节点可组成集群;Nginx;MySql5.6.5+;Linxu下安装Nacos,需要3个及以上的Nacos节点组成集群,还需要一个Nginx来模拟负载均衡。安装包已经准备好,后台回复nacos即可。1.解压nacostar-zxvfnacos-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.创建数据库CREATEDATABASEnacos_config;USEnacos_config;2.执行脚本找到nacos数据库脚本,在刚刚创建的数据库中执行。执行成功,如下图所示:3.修改配置修改conf/application.properties文件,增加对MySQL数据源配置的支持。spring.datasource.platform=mysqldb.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=123456Nacos集群配置1.修改cluster.conf文件。在我们正式开始配置集群之前,我们需要修改conf/cluter.conf配置文件。修改文件前,请做好备份。Nacos文件已经帮我们完成了这一步。如果不手动复制一个备份文件。cpcluster.confcluster.conf.example在配置集群时不能通过127.0.0.1分配。服务器不知道具体的机器和具体的IP地址。您需要使用conf/cluter.conf指定相应的IP和端口。同时,我们在修改端口的时候,一定要有一定的偏移量,因为Nacos2.0本身就增加了一个新占用的端口,在设置端口的时候要避免。每行配置为ip:port;ifconfig-a#查看具体ip这里我的IP地址是:192.168.137.152;vicluster.conf在配置中添加我们需要使用的IP和端口;192.168.137.152:8848192.168.137.152:8868192.168.137.152:88882。编辑启动脚本startup.sh修改这个脚本,让我们在用这个命令启动的时候传入对应的端口参数,这样就可以通过特定的端口号参数启动特定的Nacos节点,脚本目录为:nacos/bin/startup.sh修改参数:启动Nacos启动命令:./startup.sh-o8848./startup.sh-o8848./startup.sh-o8848我们可以在启动后查看这个Log文件,是否启动成功。tail-f/usr/local/nacos/nacos/logs/start.out启动完成后,我们可以使用如下命令测试Nacos集群是否正常启动:ps-ef|grepnacos|grep-vgrep|wc-l一般数是3,我这里开启了三个日志查看,所以是6。注意:我们在浏览器访问Nacos地址的时候,一定要关闭防火墙。systemctlstopfirewalld#暂时关闭;systemctldisablefirewalld#永久关闭;打开任意IP和端口下的路径,使用账号密码nacos/nacos登录成功后,可以在集群管理>节点列表中看到我们的三个nacos服务,到这里nacos此时已经完成所有配置。nginx负载均衡配置tar-zxvgnginx-1.14.2.tar.gz#解压cdnginx-1.14.2./configure#编译make&&makeinstall#安装cd/usr/local/nginx/conf/vinginx.conf#修改nginx文件,只需要在整个文件中使用如下配置即可:下面不使用HTTP请求进行转发,而是使用TCP协议。使用nginx请求时需要配置为TCP转发,不能配置http2转发,否则会阻塞连接。nginx断开连接。worker_processes1;events{worker_connections1024;}stream{upstreamnacos{服务器192.168.137.152:8848;服务器192.168.137.152:8868;服务器192.168.137.152:8888;}服务器{听81;proxy_passnacos;}}启动nginxcd/usr/local/nginx/sbin/#进入目录./nginx#启动在浏览器输入网址看能否启动成功http://192.168.137.152:81/nacos添加配置我们也看到在config_info表中有相应的Add记录。将服务注册到nacos我们将上一节提到的服务cloud-alibaba-nacos-9001注册到Nacos集群中。如果成功,说明我们的Nacos已经可以使用了。yml配置:server:port:9001spring:application:name:nacos-providercloud:nacos:discovery:server-addr:http://192.168.137.152:81#server-addr:localhost:8848management:endpoint:web:exposure:include:'*'启动成功后,我们可以在浏览器中看到对应的服务已经注册到nacos中了。综上所述,我们的Nacos集群搭建完成。如果还有不明白的朋友,欢迎在下方留言告诉我。小农看到会第一时间回复。需要注意的是,在安装nginx的地方可能会有一些包找不到。现在,您需要自己下载并安装它。以上是小农一步步搭建起来的。按照步骤操作,不会有问题的。cd/usr/local/nginx/sbin/#进入目录./nginx#启动