Linux 部署 Nacos 2.2.3 集群

  • Nacos 2.0 版本相比 1.X 新增了 gRPC 的通信方式

1. 集群安装配置

  • JDK 环境:略
  • 数据库导入 conf/mysql-schema.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
$ tar -zxvf nacos-server-2.2.3.tar.gz -C /opt/app/
$ cd /opt/app/nacos
$ cp conf/cluster.conf.example conf/cluster.conf
$ vi conf/cluster.conf
10.4.7.101:8848
10.4.7.102:8848
10.4.7.103:8848
$ vi conf/application.properties
spring.sql.init.platform=mysql
db.num=1
db.url.0=jdbc:mysql://10.4.7.101:3307/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
nacos.core.auth.enabled=true
nacos.core.auth.system.type=nacos
nacos.core.auth.server.identity.key=xixi
nacos.core.auth.server.identity.value=haha
nacos.core.auth.plugin.nacos.token.secret.key=b2hteWZ1Y2tpbmdmdWNraW5nZnVja2luZ2dvb29vb29vZAo=
$ bin/startup.sh
端口 与主端口的偏移量 描述
8848 0 主端口,客户端、控制台及 OpenAPI 所使用的 HTTP 端口
9848 1000 客户端 gRPC 请求服务端端口,用于客户端向服务端发起连接和请求
9849 1001 服务端 gRPC 请求服务端端口,用于服务间同步等
7848 -1000 Jraft 请求服务端端口,用于处理服务端间的 Raft 相关请求

2. Nginx 负载均衡配置

  • 使用 VIP/nginx 请求时,需要配置成 TCP 转发,不能配置 http2 转发,否则连接会被 nginx 断开。9849 和 7848 端口为服务端之间的通信端口,请勿暴露到外部网络环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
http {
upstream nacos {
server 10.4.7.101:8848 weight=1;
server 10.4.7.102:8848 weight=1;
server 10.4.7.103:8848 weight=1;
}
server {
listen 8847;
server_name localhost;
location / {
proxy_pass http://nacos;
}
}
}

# nacos的grpc协议配置
stream {
# TCP长连接配置
upstream nacos-tcp{
server 10.4.7.101:9848 weight=1;
server 10.4.7.102:9848 weight=1;
server 10.4.7.103:9848 weight=1;
}
server {
listen 9847;
proxy_pass nacos-tcp;
}
}

参考