03、Nacos 教程 - 集群部署和VIP模式部署

前言

Nacos官网:https://nacos.io/

如何部署Nacos集群?

什么是VIP模式?

VIP模式部署集群怎么操作?

准备工作

文章中使用的版本信息如下
nacos版本1.4.3
nginx版本1.20.2

如果尚未学习单点部署,请先学习单点部署:02、Nacos 教程 - 下载安装启动和排错

如果对nginx不清楚,在文中用到nginx的时候,可以阅读以下nginx相关的资料:nginx专栏

第一节 如何集群部署nacos

1. 如何部署nacos集群

这里是本地模拟3台nacos
集群部署,必须配置外部的相同数据源(配置同一个mysql数据库地址),不要使用nacos内置数据库。

 #集群启动nacos(请确保先切换到nacos的bin目录)
startup.cmd -m cluster


2. 微服务中如何配置多个nacos地址

在微服务的配置文件里需要配置多个nacos地址,以逗号分割。
这种配置多个nacos地址的方式,显然很难实现nacos集群的扩缩容,nacos一旦增加或者减少,就需要在每个微服务里进行修改,很繁琐。

 spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850

第二节 数据库主备高可用的配置

第三节 nginx+nacos集群(VIP模式)

1. VIP 模式

2. 安装nginx

nginx基础(2):windows安装nginx

3. 配置nginx转发

 #全局配置信息

events {

    worker_connections  1024;#最大连接数
}

http {

    upstream hello{

    #weight表示权重,默认是轮循,此处表示8848访问一次,8849访问2次,8850访问5次,按照这个方式循环调用
        server 127.0.0.1:8848 weight=1;
        server 127.0.0.1:8849 weight=2;
        server 127.0.0.1:8850 weight=5;
    }

    server {

        listen       18888;
        server_name  localhost;

        location / {

            root   html;
            index  index.html index.htm;
            proxy_pass http://hello;
        }

        location /othermodule {

            root   html;
            index  index.html index.htm;
        }

    }
}

4. 微服务中配置nginx

通过nginx+nacos集群,我们只需要在微服务中配置nginx的转发地址即可,不需要填写具体的nacos地址

 spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:18888

遇到的问题

问题1:节点显示多了

1、 打开对应出错的nacos的conf目录下application.properties文件,指定ip;

 #要指定你网卡里有的ip,不要瞎设置
nacos.inetutils.ip-address=127.0.0.1

问题2:Error occurred during initialization of VM

 D:\developsoft\nacos_cluster\nacos3\bin>startup.cmd -m cluster
"nacos is starting with cluster"
Error occurred during initialization of VM
Could not reserve enough space for object heap

堆内存不足
解决办法
关掉一些应用,或者增加内存。