nacos集群(1):集群部署和VIP模式部署

5 篇文章 0 订阅

前言

nacos官网:https://nacos.io/
如何部署nacos集群?
什么是VIP模式?
VIP模式部署集群怎么操作?

准备工作

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

如果尚未学习单点部署,请先学习单点部署:nacos基础(1):下载安装启动和排错

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

第一节 如何集群部署nacos

1. 如何部署nacos集群

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

  1. 复制3分nacos文件夹
    在这里插入图片描述

  2. 分别修改三个nacos的端口为8848,8849,8850(conf下的application.properties)
    这里只粘贴了一张图
    在这里插入图片描述

  3. 修改conf文件夹下的cluster.conf.example文件的后缀,去掉.example(变成cluster.conf文件),并在里面添加内容,将这个文件分别复制到3个nacos下的conf目录下
    在这里插入图片描述

  4. 在nacos的bin目录下使用集群启动命令(3个nacos都需要执行启动命令)

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

5.打开nacos地址(默认账号密码nacos/nacos)
在这里插入图片描述

  1. 点击集群管理>>节点管理,如果显示3个nacos记录,即为集群启动成功。
    在这里插入图片描述

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

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

除了配置多节点外,高可用还需要配置多数据源。
配置两个数据源,在conf目录下的application.properties添加配置数据源(数据库主备高可用)
在这里插入图片描述

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

1. VIP 模式

传统模式的问题:
在第一节中,我们每个微服务都需要配置多个nacos的地址,就形成了多对多的关系,当nacos集群发生变化(数量增加减少,ip和端口发生变化)时,每个微服务都需要修改配置文件里的nacos地址,很不方便。
VIP模式:
在微服务和 nacos集群中增加一个nginx,通过nginx负载分发到nacos集群中,而微服务只需要配置nginx的地址即可,这样就避免了传统模式的缺点。
在这里插入图片描述

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;
        }
        
    }
}
  1. 启动nginx ,并访问nacos ,http://localhost:18888/nacos/,默认账号名和密码都是nacos
    在这里插入图片描述

在这里插入图片描述

4. 微服务中配置nginx

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

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

遇到的问题

问题1:节点显示多了

如果用户是多网卡,则会出现下面的问题,8848端口只有1个nacos,但是显示两行记录。
在这里插入图片描述
解决办法:

  1. 打开对应出错的nacos的conf目录下application.properties文件,指定ip
#要指定你网卡里有的ip,不要瞎设置
nacos.inetutils.ip-address=127.0.0.1

在这里插入图片描述

  1. 检查cluster.conf文件(conf目录下),如果出现多余的配置,请删除(nacos会自动帮你乱添加配置)
  2. 按照集群启动命令重新启动nacos
    在这里插入图片描述

问题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

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值