nacos2.x集群版搭建

该文详细介绍了如何在Linux环境下部署Nacos集群,包括JDK和Maven的准备,服务器和端口规划,Nacos下载与MySQL数据库的配置,以及启动和检查集群状态。同时,文中提到了通过nginx进行负载均衡和配置gRPC端口以支持服务间通信,还警告了关于端口冲突的问题,特别是在同一机器上部署多个Nacos实例时需要注意的端口非连续性要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 预备环境准备

请确保是在环境中安装使用:

  1. 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。--这里使用linux系统
  2. 64 bit JDK 1.8+;下载配置
  3. Maven 3.2.x+;下载配置
  4. 3个或3个以上Nacos节点才能构成集群。
  5. 官网地址:集群部署说明

2、服务器准备:

 10.127.1.100、10.127.1.101

 端口预备:

 10.127.1.100: nacos1-8840  nacos2-8945

 10.127.1.101: nacos3 8848

3、下载nacos

下载地址:Releases · alibaba/nacos · GitHub

我使用的是2.2.0

 4、mysql等安装环境准备

1、解压下载好的nacos压缩包

2、进入到config下面有个mysql脚本

 3、创建一个nacos-config数据库、把sql脚本导入执行

4、修改config下的 application.properties mysql数据库连接改为你的数据库连接,如图

 5、复制3个一样的nacos 分别叫nacos1 nacos2 nacos3

10.127.1.100: nacos1-8840  nacos2-8945

 10.127.1.101: nacos3 8848

把nacos1的config下的application.properties里面的server.port 改为8840

nacos2改为8845 nacos3改为8848

 6、在 Nacos 的解压目录 nacos/conf 目录下,复制配置文件 cluster.conf.example 并重命名为 cluster.conf,每行配置成 ip:port。(请配置3个或3个以上节点)

10.127.1.100:8840
10.127.1.100:8945
10.127.1.101:8848

 7、把nacos1 和nacos2放入10.127.1.100服务器/opt/nacos下面,nacos2放入10.127.1.101服务器/opt/nacos下面

接着在 Nacos 的解压目录 nacos/bin 目录下启动。

启动命令(在没有参数模式,是集群模式):

sh startup.sh

8、查看启动日志

可通过 /nacos/logs/nacos.log(详细日志)或 /nacos/conf/start.out(启动记录)的输出内容查看是否启动成功。

查看命令:

tail -f opt/nacos/logs/start.out

 成功启动如图:

9、访问

访问以下链接,默认用户名/密码是 nacos/nacos :

从下图可以看到集群节点共有三个

10、关闭nacos

sh shutdown.sh

项目配置:

 

 

 5、nginx转发

upstream nacos {
 	 server 10.134.1.111:8840;
 	 server 10.134.1.112:9845;
 	 server 10.134.1.112:8848;

server {
  listen 80;
  server_name  localhost;
  location /nacos/ {
    proxy_pass http://nacos/nacos/;
  }
}

  

nginx需要有stream模块支持

配置grpc
官方说明: Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

​

配置
stream {
    upstream nacos-server-grpc {
     server 10.134.1.111:8840;
 	 server 10.134.1.112:9845;
 	 server 10.134.1.112:8848;
    }
    server {
        listen 9888;
        proxy_pass nacos-server-grpc;
    }
}
其中9838 9848 9858端口是grpc请求服务端端口,由nacos端口号+1000得出, 9888是由8888端口+1000得出
坑点:
cluster的端口规则
# 端口规则
server.port(默认8848)
raft port: ${server.port} - 1000
grpc port: ${server.port} + 1000
grpc port for server: ${server.port} + 1001
可以看到grpc用于服务间同步的端口需要+1001,这就导致在虚拟机跑三台nacos时,三台nacos的端口是不能连续的,否则会出现端口冲突问题

注意问题:

同一台机器启动2个nacos遇到的问题参考文章:https://blog.youkuaiyun.com/SleepNot_Need/article/details/122473010 

因为这个改动,在一台机器上部署nacos集群时,不能将运行端口设置为连续端口,比如8841、8842、8843,否则会发生端口冲突。
运行在8841端口nacos服务实际上会占用8841、8941、8942三个端口;
运行在8842端口nacos服务实际上会占用8842、8942、8943三个端口;
运行在8843端口nacos服务实际上会占用8843、8943、8944三个端口;

因此在部署在同一机器的不同端口时,端口号一定要注意
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值