Springcloud----Nacos集群的搭建

        在真实的项目开发中,Nacos作为springcloud框架中重要的一员,他的高可用决定了整个项目的稳定性,所有的微服务都需要通过它来完成调用和注册,所以,单机模式下的Nacos显然不够用,所以我们该如何提高nacos的高可用性?必定是搭建Nacos的集群模式来代替单机模式.那这些Nacos集群又统一由谁来管理呢?-----Nginx反向代理服务器.Nginx可以代理我们的服务器集群,并且Nginx中也包含有负载均衡策略,可以让我们集群中的每一个服务器的访问压力均分,也就是轮询模式.当然你也可以使用别的模式,比如随机或者iphash等等.这些都是nginx包含的功能,作为代理我们的Nacos集群再合适不过.在之前我们微服务中的application.properties(或是application.yml)配置文件中需要配置nacos的url,现在由nginx代理nacos之后,我们就可以直接将路径改为nginx的虚拟路径,这个虚拟路径会帮我们映射到真正要访问的路径上也就是我们的nacos集群中的某一台服务器上.

        下面给大家演示一下在公司中如何搭建Nacos的集群模式.

        由于是演示,小编这里也只有一台电脑,所以没法给多个Nacos分别搭建在不同的服务器上,Nginx也同理.所以这里小编只用一台电脑,通过修改不同的端口号来模拟不同的服务器.

        首先我们要再明确一下我们的整个搭建的流程.由一台Nginx服务器,反向代理我们三台Nacos服务器集群,实现Nacos的高可用.流程图可以参考下图.

        演示时,nginx的高可用我们就不搭建了,这里主要演示nacos的集群模式的搭建,所以nginx我们只用开启一台.

Springcloud----Nacos集群的搭建_第1张图片

一.技术选型

(1) MySQL       8.0.11

(2) Naocs         win64版 1.4.3

(3) SpringBoot                         2.3.12.RELEASE

     + Spring-cloud                    Hoxton.SR8

     + Spring-cloud-alibaba       2.2.3.RELEASE

(4) Nginx         win64版 1.8.0        

        当然你也可以在虚拟机中完成模拟搭建,对应的版本也应该改为Linux版本,这里要注意的是springcloud项目中,springboot+springcloud+springcloud alibaba这三个东西的版本要相互照应,不能随便用,否则会不兼容,出现很多意想不到的问题,小编这里选用的版本虽然不是很新的版本,但一定是最稳定的版本,真实在企业中,没有哪个冤大头老板会选用最新的,一定会选用最稳定的,这也是为什么到现在,企业中还是有很多springboot甚至ssm的项目.

二.配置数据库

        Nacos中有内置的数据库,单机版中无需配置,打开即用.但在集群模式下,你需要让你的Nacos集群们公用一个数据库,才能保证你的服务在通过Nacos调用其他微服务时都是一致的,不会发生A服务器注册的有这个微服务,B服务器没有这种情况

(1) 进入nacos文件夹->conf目录,找到nacos-mysql.sql文件

Springcloud----Nacos集群的搭建_第2张图片

 (2) 在MySQL数据库中新建一个数据库,起名nacos-mysql(或者你可以给数据库起别的名称),然后将这个文件拖入到库中,将所有的表导入到你建好的数据库中.

Springcloud----Nacos集群的搭建_第3张图片

(3) 还是在nacos->conf目录下,通过记事本打开方式,打开application.properties文件. 然后修改里面的内容

Springcloud----Nacos集群的搭建_第4张图片

 将上面这些标红线的内容前面的注释标识符"#"去掉,并修改最后第三个红线内容

  1. 修改数据库的url以及需要用到的数据库的名称;
  2. 修改数据库的username
  3. 修改数据库的password
  4. 最后别忘记保存

三.配置集群文件

还是当前目录下,找到cluster.conf.example文件

Springcloud----Nacos集群的搭建_第5张图片

(1)修改该文件的名,将名称改为:cluster.conf(记得将文件后缀名打开不然你修改不了文件的类型)

(2)通过记事本打开,配置你的nacos集群

Springcloud----Nacos集群的搭建_第6张图片

 指定你的三台nacos集群的ip+端口号,保存并退出.小编这里三台nacos的端口号分别为8849,8850和8851.

四.复制三个nacos文件

为了方便区分,三个文件我分别根据端口号为他们命名.注意,文件名一定不能有中文,否则就会启动失败.

五.修改三个Nacos服务的端口号

还是在conf路径下的applicaiton.properties文件,记事本打开并修改为对应的端口号

Springcloud----Nacos集群的搭建_第7张图片

 六.启动三台Nacos

点击bin下的start.cmd即可,三台服务器出现以下提示则表示可以成功启动

Springcloud----Nacos集群的搭建_第8张图片

七.配置Nginx并启动

打开nginx->conf目录下的nginx.conf文件,用记事本的方式打开并添加nacos集群的配置信息

Springcloud----Nacos集群的搭建_第9张图片

 启动nginx目录下的nginx.exe文件.我们可以在任务管理器中看到nginx.exe已经运行成功.

Springcloud----Nacos集群的搭建_第10张图片

现在我们可以通过访问:localhost:81/nacos看能否进入到nacos的注册中心页面

Springcloud----Nacos集群的搭建_第11张图片

 八.修改微服务的配置文件中的nacos的url

Springcloud----Nacos集群的搭建_第12张图片

 注意,自己电脑访问自己的url可以通过localhost来代替,在企业中这里肯定不能写成localhost.

修改好后重启该微服务,查看注册中心是否有该微服务的信息

Springcloud----Nacos集群的搭建_第13张图片

 至此,我们nacos搭建集群就已经大功告成了.

再次强调,特别需要注意的是:

  1. nacos文件名不能有中文
  2. 有关localhost的使用场景.只能在本机中访问而且在nginx配置nacos集群时,nacos的url不能写成localhost,一定要写成真实的ip.
  3. 注意将cluster.conf.example文件名改为cluster.conf
  4. 确保nginx可以启动成功.可以通过任务管理器查看
  5. 企业中,nacos肯定不会在同一个服务器中,理解明白其中原理并在实际使用时加以修改.

你可能感兴趣的:(springcloud,spring,cloud,java,微服务)