Nacos 集群搭建

米斯特程序猿 2021年04月29日 403次浏览

环境信息

  • Nacos 版本 2.0
  • JDK 1.8.0_161
  • Mysql 5.7.23

注意点

  • Nacos 2.x 启动了多个端口号
  • Nacos 2.x 启动多个端口规则如下官方issuer

2.0需要4个端口
server.port(默认8848)
raft port: $
- 1000
grpc port: $
+ 1000
grpc port for server: $
+ 1001

Nacos 服务安装

  • nacos 使用java语言开发,所以服务器需要安装好 JAVA Runtime 或 JDK,如何安装java运行环境自行百度
  • 获取 nacos 服务,由于包在github上,下载可能会不稳定
#下载
wget https://github.com/alibaba/nacos/releases/download/2.0.0-bugfix/nacos-server-2.0.0.tar.gz
# 解压
tar -xvf nacos-server-2.0.0.tar.gz

集群配置

  • 复制 nacos/conf 文件夹下的 cluster.conf.example 文件,并重名为 cluster.conf
  • 删除 cluster.conf 里配置的默认信息,然后按照 ip:port 的格式添加准备集群的信息,例如:

1.0.3.9:4000
1.0.3.9:8000
1.0.6.47:4000
1.0.6.47:8000

  • 连接mysql 创建数据库,官方要求5.6以上,创建表的脚本在 nacos/conf目录下,名为schema.sql 或 nacos-mysql.sql 根据需要自行执行,建议修改数据库名称,默认用户名密码为 nacos,初始化后建议修改
  • 编辑 nacos/conf 文件下的 application.propertys 文件,配置数据库信息如下格式
### If use MySQL as datasource:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/数据库名字?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=账号
db.password.0=密码
  • 单机启动多个 nacos ,启动几份就复制几份配置好的服务,例如我这里复制两份并将文件夹重命名了,名字中有对应的端口号信息,复制后记得修改端口号,或者启动时指定端口号(sh starup.sh -p 端口号)
    • image.png
    • 注意:单机机器部署多个nacos需要注意nacos四个端口号不要冲突,否则会启动报错且无法使用
    • 单机启动一个 nacos 服务也需要注意不要与其它服务端口号冲突
  • nacos 配置文件都修改好之后就可以使用 nacos/bin 下的 startup.sh 启动项目了
sh startup.sh -m standalone
  • 集群负载均衡方式
    • 云厂商提供的 SLB 等负载服务
    • Nginx 配置 stream 转发

stream {
        upstream back{
                server IP:端口 up;
                server IP:端口 up;
        }
        server {
                listen Nginx监听端口;
                proxy_connect_timeout 5s;
                proxy_timeout 300s;
                proxy_pass back;
        }
}


查看端口号占用方法

  • 获取进程号方法1

ps -ef|grep 项目名字或目录名

  • 获取进程号方法2

ps -aux | grep 项目名字或目录名

  • 查看端口占用

netstat -anp | grep 进程