zoukankan      html  css  js  c++  java
  • Nacos 服务注册和配置中心

    一、概述

    1、简介

    ​ 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,可以替代Eureka做服务配置中心,替代Config做服务配置中心。官方文档地址:https://nacos.io/en-us/docs/quick-start.html

    2、安装运行

    ​ 本地环境首先需要安装好JDK1.8及以上,以及Maven,然后下载nacos。v1.2下载地址:https://github.com/alibaba/nacos/releases/tag/1.2.0 。根据系统版本下载完成后,解压,运行。浏览器地址栏输入 http://localhost:8848/nacos 看到以下界面便安装成功。

    二、服务注册

    1、新建一个模块,在pom中加入以下依赖;

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--引入自己定义的包-->
        <dependency>
            <groupId>com.xhanglog.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    

    2、配置application.yml文件;

    server:
      port: 9001
    
    spring:
      application:
        name: nacos-payment-provider
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #配置nacos地址
    
    management:
      endpoints:
        web:
          exposure:
            include: "*"
    

    3、主启动类加上注解

    @SpringBootApplication
    @EnableDiscoveryClient
    

    4、先启动nacos,然后启动服务提供者,打开nacos可以发现服务注册成功,如下图:

    三、服务注册中心

    1、基础配置

    • 新建一个项目,在pom中引入以下依赖;

      <dependencies>
          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
          </dependency>
          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
          </dependency>
          <!--引入自己定义的包-->
          <dependency>
              <groupId>com.xhanglog.springcloud</groupId>
              <artifactId>cloud-api-commons</artifactId>
              <version>${project.version}</version>
          </dependency>
      
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-actuator</artifactId>
          </dependency>
          <!--热部署-->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-devtools</artifactId>
              <scope>runtime</scope>
              <optional>true</optional>
          </dependency>
          <dependency>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
              <optional>true</optional>
          </dependency>
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-test</artifactId>
              <scope>test</scope>
          </dependency>
      </dependencies>
      
    • 在配置文件bootstrap.yml中配置以下内容;

      # nacos 配置
      server:
        port: 3377
      spring:
        application:
          name: nacos-config-client
        cloud:
          nacos:
            discovery:
              server-addr: localhost:8848 #nacos服务地址
            config:
              server-addr: localhost:8848 #nacos作为注册中心地址
              file-extension: yaml #指定yaml格式peizhi
      
    • 配置application.yml文件;

      spring:
        profiles:
          active: dev #表示开发环境
      
    • 在nacos中添加配置,其读取配置的规则为${spring.application.name}-${spring.profile.active}.${sping.cloud.nacos.config.server-addr.file-extension},具体配置如下图:

    • 在业务类要加上注解 @RefreshScope开启动态刷新。

    2、分类配置

    • 方式一:配置DataID

      指定spring.profile.active和配置文件文件的DataID来使不同环境读取不同的配置,即默认空间+默认分组+不同的DataID。

    • 方式二:配置Group

      将相同的DataID放入不同的组,只需要在bootstrap.yml的config下加上配置group指定组名称即可。

    • 方式三:配置命名空间

      建立不同的命名空间,在bootstrap.yml的config下加上配置namespace指定要使用的空间。

      四、LInux中集群和持久化

    1、集群部署示意图:

    2、初始化 MySQL 数据库,下载SQL语句源文件,下载地址:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

    3、修改nacos的conf目录下的application.properties文件,添加以下内容;

    spring.datasource.platform=mysql
    db.num=1
    
    db.url.0=jdbc:mysql://1.1.1.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=user
    db.password=password
    

    3、配置集群配置文件cluster.conf,每行配置成ip:port(这个IP不能为127.0.0.1,必须是linux的hostname -i能够识别的IP),配置3个或3个以上节点。如:

    # ip:port
    200.8.9.16:8848
    200.8.9.17:8848
    200.8.9.18:8848
    

    4、编辑nacos的启动脚本,使它能够接受不同的启动端,修改内容如下图;

    ​ 修改后的客户端启动命令为./startup.sh -p 端口号

    5、配置Nginx,修改Nginx的配置文件nginx.conf,修改内容如下:

    upstream cluster{
      server 上面配置的ip:端口号;
      server 上面配置的ip:端口号;
      server 上面配置的ip:端口号;
    }
    server{
      listen nginx的端口号;
      server_name localhost;
      location /{
      proxy_pass http://cluster;
      }
    }
    

    案例代码地址:https://github.com/xhanglog/springcloud-learning

  • 相关阅读:
    kendoui 时间选择框
    vue+webpack+win10搭建项目
    arcgis for javascript 自定义infowindow
    如何将 Microsoft Bot Framework 机器人部署以及网页应用
    STM32Cube_FW_F1_V1.0.0固件库学习(五) Systick
    STM32Cube_FW_F1_V1.0.0固件库学习(四)外部中断 下
    STM32Cube_FW_F1_V1.0.0固件库学习(四)外部中断 中
    STM32Cube_FW_F1_V1.0.0固件库学习(二)工程设置
    STM32Cube_FW_F1_V1.0.0固件库学习(四)中断概念 上
    STM32Cube_FW_F1_V1.0.0固件库学习(三)GPIO LED&KEY
  • 原文地址:https://www.cnblogs.com/Mhang/p/12594996.html
Copyright © 2011-2022 走看看