3. SpringCloud Alibaba Nacos 之 集群

SpringCloud Alibaba系列文章列表

0. SpringCloud Alibaba入门简介
1. SpringCloud Alibaba Nacos 之 服务注册中心
2. SpringCloud Alibaba Nacos 之 服务配置中心
3. SpringCloud Alibaba Nacos 之 集群
4. SpringCloud Alibaba Sentinel 服务限流熔断(万字长文)

1. Nacos集群部署说明

参考 https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

image-20201228163347854

需要1个nginx+3个nacos注册中心+1个mysql;

真正集群肯定是至少三台linux服务器,来跑3个nacos;

但是由于个人只有一台2G的Linux服务器(实际可用1G多点,小的可怜),跑一个nacos估计就撑死了;想跑集群不太可能;

如果用docker的话,一台linux服务器,需要安装docker,跑3个nacos,一个mysql;1G多也不够;

最后采用的方案是docker方案,然后进行改造;

本服务器,用docker跑三个nacos,再借一台服务器跑mysql;nginx安装在windows本地来访问服务器;

2. docker安装nacos集群

参考 https://github.com/nacos-group/nacos-docker

2.1 下载安装脚本(nacos-docker-master.zip)

下载地址:https://github.com/nacos-group/nacos-docker

放到服务器中解压

#解压
unzip nacos-docker-master.zip
#进入
cd nacos-docker-master/
#启动
docker-compose -f example/cluster-hostname.yaml up

如果内存够大,上面直接就ok了;实际情况内存不够,nacos一直重启;所以改造如下:

  1. 修改启动脚本cluster-hostname.yaml

    version: "3"
    services:
      nacos1:
        hostname: nacos1
        container_name: nacos1
        image: nacos/nacos-server:latest
        volumes:
          - ./cluster-logs/nacos1:/home/nacos/logs
          - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports:
          - "8848:8848"
          - "9555:9555"
        env_file:
          - ../env/nacos-hostname.env
        #restart: always
        #depends_on:
        #  - mysql
    
      nacos2:
        hostname: nacos2
        image: nacos/nacos-server:latest
        container_name: nacos2
        volumes:
          - ./cluster-logs/nacos2:/home/nacos/logs
          - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports:
          - "8849:8848"
        env_file:
          - ../env/nacos-hostname.env
        #restart: always
        #depends_on:
          #- mysql
      nacos3:
        hostname: nacos3
        image: nacos/nacos-server:latest
        container_name: nacos3
        volumes:
          - ./cluster-logs/nacos3:/home/nacos/logs
          - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports:
          - "8850:8848"
        env_file:
          - ../env/nacos-hostname.env
        #restart: always
        #depends_on:
        #  - mysql
    

    注释掉mysql相关的;#restart: always是自动重启,因为测试所以就是注释掉了;

  2. 修改环境变量/nacos-docker-master/env/nacos-hostname.env

    #nacos dev env
    PREFER_HOST_MODE=hostname
    NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
    MYSQL_SERVICE_HOST=主机ip
    MYSQL_SERVICE_DB_NAME=nacos_devtest
    MYSQL_SERVICE_PORT=3306
    MYSQL_SERVICE_USER=用户名
    MYSQL_SERVICE_PASSWORD=密码
    #JVM参数限制
    JVM_XMS=256m
    JVM_XMX=256m
    JVM_XMN=128m
    JVM_MS=128m
    JVM_MMS=128m
    
  3. mysql添加数据库 nacos_devtest ,执行数据库脚本nacos-mysql.sql

    nacos-mysql.sql在nacos安装包下 conf目录下面,安装包下载地址 https://github.com/alibaba/nacos/releases

    image-20201228170241543

    image-20201228170146007

#启动
docker-compose -f example/cluster-hostname.yaml up
#查看启动日志
cd example/cluster-logs/nacos1
tail -f start.out 


image-20201228170830404

image-20201228170912382

2.2 Nginx配置
	upstream cluster{
		server 服务器ip:8848;
		server 服务器ip:8849;
		server 服务器ip:8850;
	}
    location / {
    	proxy_pass http://cluster;
    }

image-20201228171139436

启动nginx,访问localhost/nacos , nacos/nacos登录

如下图,集群配置成功;

image-20201228171405738

3. 项目实战配置

采用之前的项目cloudalibaba-provider-payment9001 (具体参考博客 https://blog.csdn.net/shuai8624/article/details/111241747 )

修改application.yml文件中的server-addr 为 nginx地址 http://localhost:80

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: http://localhost:80 #配置nacos地址

management: #暴露端口
  endpoints:
    web:
      exposure:
        include: '*'

启动项目,如下图注册成功

image-20201228171745119

点赞+评论+关注
本文源码地址: https://gitee.com/shuaidawang/SpringCloudDemo.git
有错误的地方欢迎指正!可以加入qq交流群: 700637673

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

臭小子帅

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

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

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

打赏作者

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

抵扣说明:

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

余额充值