zoukankan      html  css  js  c++  java
  • nacos 注册/配置 中心的安装,使用

    1,简单安装启动

    1,下载,安装,打包

    1, 源码下载地址:https://gitee.com/mirrors/Nacos/tree/1.4.0
    2, 打包指令:mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
    3, 代码最终生成的路径:/Nacos/distribution/target/nacos-server-1.4.0/nacos

    2,启动

    进入 bin 目录
    linux:sh startup.sh -m standalone
    windows:cmd startup.cmd -m standalone
    启动后的访问地址:http://10.131.11.42:8848/nacos/index.html
    默认登入的账号密码:nacos/nacos

    4,暂停

    linux:sh shutdown.sh
    windows:cmd shutdown.cmd

    2,Docker 安装,并持久化(推荐)

    1,创建一个 Docker 网络

    docker network create --driver bridge --subnet=10.10.0.0/16 --gateway=10.10.0.1 mynet
    

    2,安装用于持久化的 mybatis 数据库,对应的 docker-compose 如下

    version: "3"
    services:
      mysql:
        container_name: mysql          # 容器名
        image: nacos/nacos-mysql:5.7   # 镜像名:nacos 包装后的 5.7 版本 oracle
        environment:
          - MYSQL_ROOT_PASSWORD=920619 # root  账号的密码
          - MYSQL_DATABASE=nacos       # nacos 数据库
          - MYSQL_USER=nacos           # nacos 数据库账号
          - MYSQL_PASSWORD=nacos       # nacos 数据库密码
        volumes:                       # 数据卷
          - /opt/docker/mysql:/var/lib/mysql
        ports:                         # 端口映射规则:宿主机ip:容器ip
          - "3306:3306"
    
    # 配置默认使用的网络上面创建的网络
    networks:
      default:
        external:
            name: mynet
    

    3,安装 nacos,对应的 docker-compose 如下

    version: "3"
    services:
    
      nacos:
        hostname: nacos                           # 域名
        container_name: nacos                     # 容器名
        image: nacos/nacos-server:latest          # 镜像版本
        volumes:                                  # 数据卷,这里主要指定了 日志 和 配置文件的同步
          - /opt/docker/nacos/logs/:/home/nacos/logs
          - ./custom.properties:/home/nacos/init.d/custom.properties
        ports:                                    # 端口映射规则:宿主机ip:容器ip
          - "1061:8848"
          - "9555:9555"
        environment:
          - PREFER_HOST_MODE=hostname             # 运行模式:主机名,如果使用 ip 不需要此项
          - MODE=standalone                       # 单机运行
          - MYSQL_SERVICE_HOST=mysql              # 因为 和 mysql 使用的同一个网络,可以通过容器名直接访问
          - MYSQL_SERVICE_DB_NAME=nacos           # 数据库名
          - MYSQL_SERVICE_PORT=3306               # 端口
          - MYSQL_SERVICE_USER=nacos              # 账号
          - MYSQL_SERVICE_PASSWORD=nacos          # 密码
        restart: always                           # 总是重启
    
    # 容器默认使用的网络(这里配置的网络要和 mysql 一致)
    networks:
      default:
        external:
          name: mynet
    

    4,上面使用到的 custom.properties 文件内容

    management.endpoints.web.exposure.include=*
    

    3,spring-cloud 连接

    1,pom

    <!-- 连接 nacos 注册中心 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!-- 连接 nacos 配置中心 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    

    2,配置文件

    bootstrap.yml

    # Nacos 注册中心地址
    spring:
      cloud:
        nacos:
          discovery:
            # Nacos 注册中心地址
            server-addr: 192.168.200.100:1061
            # Nacos 注册中心分组
            group: dev
          config:
            # Nacoe 配置中心地址
            server-addr: ${spring.cloud.nacos.discovery.server-addr}
            # Nacoe 配置中心读取的分组
            group: ${spring.cloud.nacos.discovery.group}
            # Nacoe 配置文件的名称,优先级高于规则自动生成为文件名
            name: config
            # Nacoe 读取的配置文件的后缀
            file-extension: yaml
    

    application.yml

    server:
      # 监听的端口
      port: 80
    
    spring:
      application:
        # 项目名称
        name: sc-web-gateway
    

    3,启动类

    package com.hwq.admin.back;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    @SpringBootApplication
    @EnableDiscoveryClient
    public class AdminBackApp {
    
        public static void main(String[] args) {
            SpringApplication.run(AdminBackApp.class);
        }
    
    }
    

    4,动态配置

    package com.hwq.admin.back.controller;
    
    import com.hwq.common.vo.ResultVO;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    
    @RestController
    @RefreshScope   // 添加了这个注解,如果修改配置文件,@Value("${config.test}") 会实时改变
    public class HomeController {
    
        @Value("${config.test}")
        private String name;
    
        @GetMapping("/home/config")
        public ResultVO<String> config() {
            return ResultVO.success("动态配置", name);
        }
    
    }
    

  • 相关阅读:
    Ubuntu 配置IP地址方法
    ubuntu server 16.04安装GPU服务器
    Ubuntu 自动获取ip地址
    Typedef 用法
    linux mount命令详解(iso文件挂载)
    specrate 与specspeed 的区别
    SPEC CPU 使用简介
    编译错误you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
    SPEC CPU 2006编译perl 出错:undefined reference to `pow'
    'gets' undeclared here (not in a function)
  • 原文地址:https://www.cnblogs.com/lovling/p/14097635.html
Copyright © 2011-2022 走看看