docker版nacos 集群部署

nacos提供了单机模式和集群模式俩种部署模式。然而在实际的生产环境中,使用单服务器搭建nacos服务器是不安全的,如若发生宕机或网络故障,整个微服务将瘫痪。因此,我们要想实现高可用,通常是使用集群的方式进行部署。

nacos搭建集群要求至少部署3台服务器实例。我们用docker模拟部署3台服务实例。用mysql做数据共享。

1.使用docker启动nacos-server会出现启动后多出一个节点,并且一直去连接

解决方案:

加入NACOS_SERVER_IP这个环境变量,即可解决!!!

docker-compose.yml配置: 

version: "3"
services:
  nacos-cluster-1:
    image: nacos/nacos-server:1.4.1
    environment:
      PREFER_HOST_MODE: ip
      MODE: cluster
      NACOS_SERVER_IP: 172.20.0.2
      NACOS_APPLICATION_PORT: 8848
      NACOS_SERVERS: "172.20.0.2:8848 172.20.0.3:8849 172.20.0.4:8850"
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: mysql服务地址
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_DB_NAME: 数据库名
      MYSQL_SERVICE_USER: 数据库用户名
      MYSQL_SERVICE_PASSWORD: 数据库密码
      JVM_XMS: 256m
      JVM_XMX: 512m
      JVM_XMN: 256m
    ports:
      - "8848:8848"
    restart: always
    
    #自定义网络,固定ip
    networks:
      nacos_cluster_nginx:
        ipv4_address: 172.20.0.2



  nacos-cluster-2:
    image: nacos/nacos-server:1.4.1
    environment:
      PREFER_HOST_MODE: ip
      MODE: cluster
      NACOS_SERVER_IP: 172.20.0.3
      NACOS_APPLICATION_PORT: 8849
      NACOS_SERVERS: "172.20.0.2:8848 172.20.0.3:8849 172.20.0.4:8850"
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: mysql服务地址
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_DB_NAME: 数据库名
      MYSQL_SERVICE_USER: 数据库用户名
      MYSQL_SERVICE_PASSWORD: 数据库密码
      JVM_XMS: 256m
      JVM_XMX: 512m
      JVM_XMN: 256m
    ports:
      - "8849:8849"
    restart: always
    
    networks:
      nacos_cluster_nginx:
        ipv4_address: 172.20.0.3
    

  nacos-cluster-3:
    image: nacos/nacos-server:1.4.1
    environment:
      PREFER_HOST_MODE: ip
      MODE: cluster
      NACOS_SERVER_IP: 172.20.0.4
      NACOS_APPLICATION_PORT: 8850
      NACOS_SERVERS: "172.20.0.2:8848 172.20.0.3:8849 172.20.0.4:8850"
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: mysql服务地址
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_DB_NAME: 数据库名
      MYSQL_SERVICE_USER: 数据库用户名
      MYSQL_SERVICE_PASSWORD: 数据库密码
      JVM_XMS: 256m
      JVM_XMX: 512m
      JVM_XMN: 256m
    ports:
      - "8850:8850"
    restart: always
    
    
    networks:
      nacos_cluster_nginx:
        ipv4_address: 172.20.0.4
    
    
#自定义网段    
networks:
  nacos_cluster_nginx:
    ipam:
      config:
        - subnet: 172.20.0.0/16
 

2.执行命令docker-compose启动命令创建nacos容器:

docker-compose up -d 运行

等待一会3个nacos创好后打开其中一个查看,如果是这样的代表创建好了

3.利用nginx实现代理转发服务

upstream cluster {                                                     
	server ip地:8848;
	server ip地址:8849;
	server ip地址:8850;
  }
    
server {
        listen 8847;
        server_name localhost;
        
        location /nacos/ {
          proxy_pass http://cluster/nacos/;
        }
   }

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值