场景

SpringCloudAlibaba中使用Nacos实现服务注册与发现(从实例入手):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/125177618

SpringCloudAlibaba中使用Nacos实现配置中心和配置动态刷新:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/125181154

在上面实现的Nacos作为服务注册中心与配置中心时,Nacos都是单机模式。

如果部署Nacos的服务器宕机,则Nacos不可用。

所以需要将Nacos以集群模式部署,比如将三个Naocs部署在三台服务器上,

当其中一台宕机时,不影响Nacos的使用。

Nacos之间如何共享配置文件?

之前单机模式启动时,Nacos的配置文件都是持久化在内置的数据库中,如果搭建集群模式

需要使所有的Nacos都连接同一个外置数据库,实现共享同一套配置文件。

Nacos的持久化可以参考如下

Nacos简介、下载与配置持久化到Mysql:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109356152

官方集群部署说明文档:

https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、首先搭建一个Nacos的持久化配置

下载Naocs之后,找到conf下的nacos-mysql.sql,然后在Mysql中新建数据库nacos_config,并执行该sql

 

 

修改conf下application.properties文件,修改为上面的mysql连接,使nacos的配置持久化到外置数据库

 

 

2、按照官方文档说明,修改conf下集群配置文件

nacos官方提供了cluster.conf.example一个示例配置文件,将其复制并修改为cluster.conf

 

 

编辑cluster.conf集群配置文件,在这里将集群所有的nacos的ip和端口号进行配置

这里计划使用三个Nacos搭建集群,因为这三个Nacos都部署在本机同一台电脑上,所以通过改端口号

模拟多台主机,实际情况下,这里应该是三个不同的ip,nacos部署在三台服务器上。

 

 

注意这里不能使用127.0.0.1和localhost了,需要使用ip。这里是我本地的ip。

3、确认下bin下面的startup.cmd这个启动文件中模式为集群模式

 

 

4、将上面修改的nacos,整个目录依次再复制两份,然后修改这三个nacos的端口分别为8848、8849、8850

在conf下application.properties中修改。

然后分别点击这三个nacso的bin下的startup.cmd启动。

 

 

启动成功之后分别访问

http://localhost:8848/nacos

http://localhost:8849/nacos

http://localhost:8850/nacos

进行验证,确定没问题

 

 

5、上面搭建了三个Nacos,那么在进行服务注册和配置中心时应该填哪个地址才能实现

集群的效果,所以这时候需要用到nginx来做集群的反向代理。

下载nginx,并修改其配置文件,在conf下nginx.conf,主要修改以下两个地方

 

 

一个是集群地址配置,放在gzip的正下方

 upstream nacos-cluster {
  server 10.229.36.140:8848;
  server 10.229.36.140:8849;
  server 10.229.36.140:8850;
 }

一个是代理的配置

    server {
        listen       1234;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://nacos-cluster;
        }

这里的1234是自己指定的监听的端口。这离nacos-cluster要保持前后一直。

启动nginx,访问

http://localhost:1234/nacos

 

 

登录进去之后,可以在集群管理中看到所有节点

 

 

6、修改服务注册地址的配置文件

此时就可以修改服务提供者的配置文件中nacos地址为nginx代理的地址了

 

 

启动服务提供者之后仍然能注册成功

 

 

同理服务配置中心的地址也改为该地址

 

 

7、此时三台nacos中只要有一台可用,则Nacos集群可用,除非所有的Nacso全部宕机

 

 

posted on 2022-06-08 17:45  霸道流氓  阅读(660)  评论(0编辑  收藏  举报