注意的要点
Nacos默认端口是8848,2.0版本后另外还占用9848,9849两个端口,这两个是gRPC端口,用于服务端与客户端通讯,所以在单机上配置集群节点,节点要配置的端口不能连续,否则在启动时报端口占用的错误。
端口 | 与主端口(8848)偏移量 | 作用 |
9848 | 1000 | 客户端gRPC请求服务端口,用户客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端口,用于服务间同步等 |
所以Nacos单机集群,端口不能连续;而且,Nginx反向代理,需要配置gRPC端口映射。
Nacos集群配置
构建Nacos集群,需要三个及以上的节点,才能构成集群节点。每个节点为一个Nacos目录
对于每一个Nacos目录,找到cluster.conf.example,复制为cluster.conf,并配置如下:
127.0.0.1:8848
127.0.0.1:8850
127.0.0.1:8852
对于每一个Nacos目录,找到application.properties文件:
## 默认端口
server.port=8848
## 配置数据源类型
spring.datasource.platform=mysql
## 数据库集群中的节点数量
db.num=1
## 数据源信息
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
复制conf/nacos-schema.sql,在本地mysql数据库,创建nacos数据库(字符集为UTF-8),运行sql。
运行每一个nacos节点目录bin/startup.cmd,运行成功可以看到:
![](https://i-blog.csdnimg.cn/blog_migrate/5a50b7aa41c85ef8f9603b558dac927b.png)
Nginx反向代理
进入http://nginx.org/en/download.html下载Nginx windows包
![](https://i-blog.csdnimg.cn/blog_migrate/94f35a91e44467c7108bae3540f69059.png)
找到conf/nginx.conf文件,增加配置:
###http节点配置
upstream nacos-cluster{
server 127.0.0.1:8848;
server 127.0.0.1:8850;
server 127.0.0.1:8852;
}
server{
listen 18848;
server_name 127.0.0.1;
location /nacos {
proxy_pass http://nacos-cluster;
}
}
### 根节点配置
stream{
upstream nacos-cluster-grpc {
server 127.0.0.1:9848;
server 127.0.0.1:9850;
server 127.0.0.1:9852;
}
server {
listen 19848;
proxy_pass nacos-cluster-grpc;
}
}
Nginx命令:
##nginx 配置检查
naginx -t
#启动
start naginx
#停止
naginx -s stop
Spring Cloud项目配置
项目配置文件,以yaml配置格式为例:
spring:
application:
name: service-xxxxx
cloud:
nacos:
server-addr: 127.0.0.1:18848
端口问题(最后强调一下)
因为Nacos新版本使用gRPC作为客户端与服务器端的心跳、推送等通讯服务,nacos会基于主端口,通过偏移1000/1001,开启gRPC端口。所以在端口、反向代理配置上要注意!!!!!否则在项目运行时显示错误日志:
![](https://i-blog.csdnimg.cn/blog_migrate/8dff14f2b57c8e9c53f82bd0a1e1d01d.png)