SpringCloud Alibaba Nacos 集群配置

【系统环境】

  1. 集群配置环境为Centos7
  2. Nacos 的版本为1.1.4,MYSQL为5.7,Nginx版本为1.17.9
  3. 需要配置使用到 Nginx ,即值暴露Nginx的地址,由Nginx实现负载均衡,图中VIP的角色就可以理解为Nginx。在这里插入图片描述
  4. MYSQL版本必须高于5.6.5,这是官方文档规定的。具体参照Nacos官方文档

【参考】

  1. Nacos官方文档
  2. SpringCloud Alibaba 中文开发文档
  3. SpringCloud Alibaba Spring社区开发文档

  1. Nginx配置
  2. MySQL配置

【下载地址】

  1. Nacos下载地址

将下载好的压缩包通过远程访问工具复制到 opt 目录下,并解压。


  • 这里所有的配置都会将原始文件复制一份之后,进行操作,以免造成修改错误无法回滚的尴尬
  • 默认认为已经配置好 MYSQL 和 Nginx

Nacos 配置

  1. 复制一份 opt 目录下解压好的 nacos 文件夹到 /mynacos,
  2. 进入当前文件,conf 目录
  3. 此目录下有 nacos 官方提供的 SQL脚本,执行此脚本,执行成功后查看表
    在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述

  1. 同样,在此目录下有 application.properties,在操作之前,首先备份一份。 修改当前配置文件,在后添加如下命令

    vim application.properties
    
    添加
    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    你的db的username 和 password
    db.user=root
    db.password=root
    
    

  1. 继续修改 conf 目录下的 ,复制 cluster.conf.example 文件为 cluster.conf,修改当前文件。

     1) 设置当前文件就是配置nacos集群启动的 ip 和 port
     2) IP必须和当前虚拟机的网卡ens33相同,不能写127.0.0.1
     3) port 端口号可以自定义 
     4) 根据nacos官方文档可知,nacos集群最少需要三个节点
    
    192.168.xxx.132:3333
    192.168.xxx.132:444
    192.168.xxx.132:5555
    

  1. 修改nacos启动脚本。

     进入bin目录下,修改 startup.sh,首先备份一份
     进入后,输入命令 :set nu,显示行号
     分别修改57.66.134行
     
     ! 同时还需要修改JAVA_HOME,要写成你自己的Jdk位置
     ! 如果虚拟机内存不够大,建议修改虚拟机启动参数,不然机器会自动停掉一台,这里坑很大
    
     57 while getopts ":m:f:s:p:" opt
     58 do
     59     case $opt in
     60         m)
     61             MODE=$OPTARG;;
     62         f)
     63             FUNCTION_MODE=$OPTARG;;
     64         s)
     65             SERVER=$OPTARG;;
     66         p)
     67             PORT=$OPTARG;;
     68         ?)
     69         echo "Unknown parameter"
     70         exit 1;;
     71     esac
     72 done
    
    134 nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
    135 echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
    
    #===========================================================================================
    # JVM Configuration
    #===========================================================================================
    if [[ "${MODE}" == "standalone" ]]; then
        JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
        JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
    else
        JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
        JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
        JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
    
    

在这里插入图片描述
在这里插入图片描述

Nginx 配置
  1. 进入Nginx配置文件目录,备份配置文件

    cd /usr/local/nginx/conf/
    
    cp nginx.conf nginx.conf.bk
    
  2. 修改Nginx的默认端口,集群配置和地址
    在这里插入图片描述


测试
  • 从本地浏览器访问地址虚拟机IP:1111/nacos,出现Nacos登录界面后登录
  • 随便写一条测试配置数据,发布后查看虚拟机的MYSQL数据库是否保存有数据,如果更新数据,则表示配置成功
    在这里插入图片描述
    在这里插入图片描述

补充

  • 编写一个微服务,将Nacos集群配置数据读取出来。

  • Controller

        @Value("${server.port}")
        private String serverPort;
    
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping(value = "/payment/nacos/{id}")
        public String getPayment(@PathVariable("id") Integer id) {
            return "Hello Nacos Discovery: " + serverPort + "\t id: " + id + ", ConfigInfo : " + configInfo;
    //        return "Hello Nacos Discovery: " + serverPort + "\t id: " + id;
        }
    
  • application.yml && bootstrap.yml

    spring:
      profiles:
        active: dev
    
    server:
      port: 9002
    spring:
      application:
        name: nacos-payment-provider
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.xxx.132:1111
          config:
            server-addr: 192.168.xxx.132:1111
            namespace: 41ccd308-12b9-4673-acb6-21206765998a
            file-extension: yaml
    

  • pom

    • 需要加入这两个依赖,当然依赖也不止这两个,其他的依赖信息,alibaba的官方文档都有说明,或依照个人而定。
     <!-- SpringCloud ailibaba nacos-->
     <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
     </dependency>
     <!-- nacos config-->
     <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     </dependency>
    

  • Nacos配置中心创建 命名空间为dev的yaml格式的配置文件nacos-payment-provider-dev.yaml

    config: 
        info: springcloud alibaba nacos cluster config center, group is DEFAULT_GROUP, version = 1.0
    

    在这里插入图片描述


  • 启动项目:通过 idea 插件访问 http://localhost:9002/payment/nacos/1001
    在这里插入图片描述
  • 如图所示,注册和配置成功。
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读