Docker——(七)Nacos v2.1.2集群搭建篇

(1) 集群架构

	    Nginx        --------- 1个Nginx反向代理 ---------- 提供服务
Nacos   Nacos   Nacos -------- 3个Nacos注册中心
        MySQL         -------- 1个MySQL ----------------- 作存储

(2) 将Nacos默认自带的嵌入式数据库derby切换为MySQL5.7.37数据库

# 在当前版本Nacos目录\nacos\conf目录下找到如下sql脚本
mysql-schema.sql 或者 nacos-mysql.sql
# 到MySQL数据库中执行找到的脚本即可
# 利用脚本创建数据库的名字为 nacos_config,如果没有可自行创建数据库

(3) 在三台服务器上分别执行以下命令

### MySQL方式启动[实际上增加配置为修改Nacos容器内部的application.properties配置文件,这是Docker容器技术的特点] 2.x版本nacos多了两个端口
# Nacos 1
docker run -e JAVA_OPTS="-Xms256m -Xmx256m" \
-e MODE=cluster \
-e PREFER_HOST_MODE=hostname \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_USERNAME=nacos \
-e NACOS_AUTH_PASSWORD=设置你的nacos密码 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=你的1号机器IP \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=你设置的mysql密码 \
-p 8848:8848 -p 9848:9848 -p 9849:9849 \
--privileged=true \
-v /docker/nacos/conf:/home/nacos/conf \
-v /docker/nacos/logs:/home/nacos/logs \
--restart=always \
--name nacos-node-1 \
-d nacos/nacos-server:v2.1.2

# Nacos 2
docker run -e JAVA_OPTS="-Xms256m -Xmx256m" \
-e MODE=cluster \
-e PREFER_HOST_MODE=hostname \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_USERNAME=nacos \
-e NACOS_AUTH_PASSWORD=设置你的nacos密码 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=你的2号机器IP \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=你设置的mysql密码 \
-p 8848:8848 -p 9848:9848 -p 9849:9849 \
--privileged=true \
-v /docker/nacos/conf:/home/nacos/conf \
-v /docker/nacos/logs:/home/nacos/logs \
--restart=always \
--name nacos-node-2 \
-d nacos/nacos-server:v2.1.2

# Nacos 3
docker run -e JAVA_OPTS="-Xms256m -Xmx256m" \
-e MODE=cluster \
-e PREFER_HOST_MODE=hostname \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_USERNAME=nacos \
-e NACOS_AUTH_PASSWORD=设置你的nacos密码 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=你的3号机器IP \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=你设置的mysql密码 \
-p 8848:8848 -p 9848:9848 -p 9849:9849 \
--privileged=true \
-v /docker/nacos/conf:/home/nacos/conf \
-v /docker/nacos/logs:/home/nacos/logs \
--restart=always \
--name nacos-node-3 \
-d nacos/nacos-server:v2.1.2

(4) 配置Nginx一台

【配置 详见文章 Docker——(八)Nginx 1.22安装篇

# 启动Nginx
docker run -e JAVA_OPTS="-Xms256m -Xmx256m" \
-e TZ=Asia/Shanghai \
-p 80:80 \
-p 6868:6868 \
--privileged=true \
-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/logs:/var/log/nginx \
-v /docker/nginx/html:/usr/share/nginx/html \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
--restart=always \
--name nginx-nacos \
-d nginx:1.22
# 修改/docker/nginx/conf.d/default.conf配置文件,如下所示:
upstream cluster {
    server 你的1号机器IP:8848;
    server 你的2号机器IP:8848;
    server 你的3号机器IP:8848;
}

server {
    listen       6868;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        # root   /usr/share/nginx/html;
        # index  index.html index.htm;
        proxy_pass   http://cluster;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

(5) 通过Nginx访问Nacos集群

# 访问如下地址
Nginx所在主机IP:6868
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!要在Docker上部署Nacos 2.3.3集群,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了DockerDocker Compose。 2. 创建一个目录,用于存放Nacos的配置文件和数据: ``` mkdir nacos cd nacos ``` 3. 在该目录下创建一个`docker-compose.yml`文件,并将以下内容添加到文件中: ```yaml version: '3' services: nacos-1: image: nacos/nacos-server:2.3.3 container_name: nacos-1 ports: - 8848:8848 environment: - PREFER_HOST_MODE=hostname volumes: - ./data:/home/nacos/data - ./logs:/home/nacos/logs - ./init.d:/home/nacos/init.d nacos-2: image: nacos/nacos-server:2.3.3 container_name: nacos-2 ports: - 8849:8848 environment: - PREFER_HOST_MODE=hostname - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=mysql - MYSQL_SERVICE_PORT=3306 - MYSQL_SERVICE_DB_NAME=nacos_devtest - MYSQL_SERVICE_USER=nacos - MYSQL_SERVICE_PASSWORD=nacos volumes: - ./data:/home/nacos/data - ./logs:/home/nacos/logs - ./init.d:/home/nacos/init.d mysql: image: mysql:5.7 container_name: mysql ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=root volumes: - ./data/mysql:/var/lib/mysql ``` 这个`docker-compose.yml`文件定义了一个包含两个Nacos实例和一个MySQL实例的Docker Compose服务。 4. 创建一个名为`application.properties`的文件,并将以下内容添加到文件中: ``` server.address=${spring.cloud.nacos.server-addr} spring.cloud.nacos.server-addr=localhost:8848,localhost:8849 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://mysql:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos db.password=nacos ``` 这个配置文件将Nacos的集群地址配置为`localhost:8848,localhost:8849`。 5. 现在,运行以下命令来启动Nacos集群: ``` docker-compose up -d ``` 这将启动两个Nacos实例和一个MySQL实例,并将它们连接在一起。 6. 等待一段时间后,通过访问`http://localhost:8848/nacos`和`http://localhost:8849/nacos`来验证Nacos集群是否成功部署。 注意:如果你在远程服务器上部署Nacos集群,请将`localhost`替换为服务器的IP地址。 希望这些步骤能够帮助你成功部署Nacos 2.3.3集群!如果有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丶象

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值