docker 安装Nacos2X 集群
前言
- docker安装nacos集群 这个没啥难的 网上有很多教程
- 但是值得注意的是 nacos集群搭建起来后 要及时的去关闭他的双写
- 不然可能会造成服务有的可以注册 有的报错
第一步 拉去nacos 镜像
docker pull nacos/nacos-server:2.1.0
第二步 在机器上部署nacos
- 这里要考虑一点
- nacos 的9848与9849端口 是从8848 偏移而来的端口
- nacos jar 默认也是直接 + 1000和1001来调用的
- 所以如果只有一台机器 端口转发时要注意
- 我这里是有三台机器 就不考虑端口问题
- 7848为nacos 同步端口
#第一台
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_SERVERS="10.204.109.81:8848 10.204.109.82:8848 10.204.109.83:8848" \
-e NACOS_APPLICATION_PORT=8848 \
-e MYSQL_DATABASE_NUM=1 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=10.204.109.106 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=pgVr4SGimU \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8' \
-e TOMCAT_ACCESSLOG_ENABLED=true -e JVM_XMS=128m -e JVM_XMX=512m \
-p 7848:7848 -p 8848:8848 -p 9848:9848 -p 9849:9849 \
--name nacos-81 \
--network=host \
--restart=always \
nacos/nacos-server:2.1.0
#第二台
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_SERVERS="10.204.109.81:8848 10.204.109.82:8848 10.204.109.83:8848" \
-e NACOS_APPLICATION_PORT=8848 \
-e MYSQL_DATABASE_NUM=1 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=10.204.109.106 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=pgVr4SGimU \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8' \
-e TOMCAT_ACCESSLOG_ENABLED=true -e JVM_XMS=128m -e JVM_XMX=512m \
-p 7848:7848 -p 8848:8848 -p 9848:9848 -p 9849:9849 \
--name nacos-82 \
--network=host \
--restart=always \
nacos/nacos-server:2.1.0
第三台
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_SERVERS="10.204.109.81:8848 10.204.109.82:8848 10.204.109.83:8848" \
-e NACOS_APPLICATION_PORT=8848 \
-e MYSQL_DATABASE_NUM=1 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=10.204.109.106 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=pgVr4SGimU \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8' \
-e TOMCAT_ACCESSLOG_ENABLED=true -e JVM_XMS=128m -e JVM_XMX=512m \
-p 7848:7848 -p 8848:8848 -p 9848:9848 -p 9849:9849 \
--name nacos-83 \
--network=host \
--restart=always \
nacos/nacos-server:2.1.0
第四步 关闭多写
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
#Nacos集群以1.X模式运行,暂时无法接受gRPC请求。请检查服务器状态或关闭双写以强制打开2.0模式
- 现在通过请求关闭多写 不要把所有的写入都关了
- 我起了三台nacos-server 我只关了两台
- accessToken 打开nacos 登录进去 F12 就能获取
- 要是没设置用户名密码就不用加accessToken
curl -X PUT 'localhost:8848/nacos/v1/ns/operator/switches?entry=doubleWriteEnabled&value=false&accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY2OTI5ODIxM30.5xaJPhoO3z4Pehp9pwEuZpql9gpmCGEaym8wztL7w4w'