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创好后打开其中一个查看,如果是这样的代表创建好了

docker版nacos 集群部署_第1张图片

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/;
        }
   }

你可能感兴趣的:(笔记,docker,java,容器,spring,cloud,springboot)