SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心

场景

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

SpringCloudAlibaba中使用Nacos实现服务注册与发现(从实例入手)_霸道流氓气质的博客-CSDN博客

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

SpringCloudAlibaba中使用Nacos实现配置中心和配置动态刷新_霸道流氓气质的博客-CSDN博客

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

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

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

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

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

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

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

Nacos的持久化可以参考如下

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

Nacos简介、下载与配置持久化到Mysql_霸道流氓气质的博客-CSDN博客

官方集群部署说明文档:

集群部署说明

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

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

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第1张图片

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第2张图片

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

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第3张图片

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

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

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第4张图片

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

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第5张图片

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

在conf下application.properties中修改。

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第6张图片

启动成功之后分别访问

http://localhost:8848/nacos

http://localhost:8849/nacos

http://localhost:8850/nacos

进行验证,确定没问题

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第7张图片

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

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

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第8张图片

一个是集群地址配置,放在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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第9张图片

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第10张图片

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

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第11张图片

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第12张图片

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第13张图片

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

SpringCloudAlibaba+Nacos集群配置+Nginx实现服务注册与配置中心_第14张图片

你可能感兴趣的:(微服务架构,nginx,java,微服务)