docker 安装Nacos2X 集群

278 阅读2分钟

docker 安装Nacos2X 集群

前言

  • docker安装nacos集群 这个没啥难的 网上有很多教程
  • 但是值得注意的是 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'