- 安装nacos
- 下载nacos:https://github.com/alibaba/nacos/releases
- 解压:unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz cd nacos/bin
- 单实例启动
解压后即可运行,默认集群模式,单实例启动如下
Linux:startup.sh -m standalone
windows:修改startup.cmd 里面28行为set MODE="standalone" 然后双击startup.cmd启动
访问地址:http://localhost:8848/nacos/index.html 账号密码nacos/nacos
- 集群部署
- 环境
Nginx
Nacos 集群(至少三个实例)
mysql数据库(取代 Nacos 内嵌数据库) - 切换数据库
找的nacos安装目录下conf文件夹里面的nacos-mysql.sql
在 MySQL 实例创建 nacos_config 库并导入脚本
修改application.project文件(3个实例都需要改)
server.port=8848#端口,部署在同一服务器需用不同端口,注意2.0以后有个端口偏移量,同一主机连续端口必有一个被端口占用,最少间隔两个端口如8848 8850 8852 用8848 8849 8850就会导致端口占用 nacos.inetutils.ip-address=192.168.0.155 #本地IP多个需填入需要的IP ,不然启动后会自动在cluster.conf里面创建新的VIP spring.datasource.platform=mysql #这里数据库地址需用服务器外网,内网出现过数据库连不上的情况,不知道是不是那里配错了,用外网就没问题 db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=root db.password=123456
- nacos 集群配置
修改 cluster.conf 文件 将3个实例IP填入
#注意不要用127.0.0.1,会出现各种问题 192.168.15.145 192.168.15.147 192.168.15.148
至此关于 nacos 的配置结束了,可以尝试以集群模式启动三个 nacos 实例了,以集群模式分别启动三个 nacos 实例,尝试访问 nacos 管理页,测试三个实例是否正常,查看集群列表/节点管理里面是否有配置的3个节点
- 环境
- nginx配置
#注意这个是用stream 转发端口,跟http同级
stream {
upstream nacosgrpcc {
server 192.168.15.145:8848;
server 192.168.15.147:8848;
server 192.168.15.148:8848;
}
upstream nacosgrpcc2 {
server 192.168.15.145:9848;
server 192.168.15.147:9848;
server 192.168.15.148:9848;
}
server {
listen 8848;
proxy_connect_timeout 300s;
proxy_timeout 300s;
proxy_pass nacosgrpcc;
}
server {
listen 9848;
proxy_connect_timeout 300s;
proxy_timeout 300s;
proxy_pass nacosgrpcc2;
}
}
代理9848的原因,不代理网页可以访问,但是springboot无法注册上
#nacos客户端升级为2.x版本后,新增了gRPC的通信方式,新增了两个端口。这两个端口在nacos原先的端口上(默认8848),进行一定偏移量自动生成.。
端口 | 与主端口的偏移量 | 描述 |
---|---|---|
9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
- springboot连接
引入jar包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
bootstarp.yml配置
server:
port: 8199
spring:
application:
name: nacos
profiles:
active: dev
cloud:
nacos:
discovery:
#nacos注册地址 nginx代理的地址
server-addr: localhost:8848
#注册服务的ip,默认是内网ip,当只需要内网访问时可以注释掉
ip: localhost
#命名空间
namespace: 5709e589-96d1-42ed-b2ca-7fe31b7d47f1
config:
#nacos配置中心地址 nginx代理的地址
server-addr: localhost:8848
file-extension: yml
namespace: 5709e589-96d1-42ed-b2ca-7fe31b7d47f1
如报错:Nacos cluster is running with 1.X mode, can’t accept gRPC request temporarily. Please check the server status or close Double write to force open 2.0 mode. Detail https://nacos.io/en-us/docs/2.0.0-upgrading.html
解决办法:
关闭双写
正常模式curl -X PUT 'localhost:8848/nacos/v1/ns/operator/switches?entry=doubleWriteEnabled&value=false'
鉴权模式:
密码登录:curl -X POST '127.0.0.1:8848/nacos/v1/auth/login' -d 'username=nacos&password=nacos'
加上accessToken关闭双写:curl -X PUT 'localhost:8848/nacos/v1/ns/operator/switches?accessToken=实际的token值&entry=doubleWriteEnabled&value=false'
- 自启动
- 自启服务需要手动配置JAVA_HOME路径路径,修改 /bin/startup.sh文件
#1、查询jdk配置 echo $JAVA_HOME # 2、结果 /usr/local/java/jdk1.8.0_131 # 修改配置 vim start.sh # 内容 [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/java/jdk1.8.0_131
- 创建自启服务
#加入内容 vim /usr/lib/systemd/system/nacos.service [Unit] Description=nacos After=network.target [Service] Type=forking #单节点方式启动,填写实际路径 #ExecStart=/opt/cloud/nacos/bin/startup.sh -m standalone #集群方式启动-外部数据源启动,填写实际路径 ExecStart=/opt/cloud/nacos/bin/startup.sh ExecStop=/opt/module/nacos/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target
#加入自启 systemctl daemon-reload systemctl enable nacos.service #启动 systemctl start nacos #停止 systemctl stop nacos
参考链接:
https://os.51cto.com/article/649179.html
https://blog.csdn.net/zhuocailing3390/article/details/123058338
Q.E.D.