Nacos基本使用

97 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情 Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

作为服务管理中心

安装Nacos-Server

github.com/alibaba/nac… 可以部署在Windows或者Linux,以下教程基于Windows

运行Nacos-Server

解压压缩包,在nacos.bin目录内,根据系统版本运行startup.cmd/sh

若是单机运行,修改文件内的set MODE="standalone",否则默认集群模式,会启动失败

启动成功后访问localhost:8848/nacos,出现以下页面即启动成功

默认账号密码皆为nacos

image-1655633308928

微服务注册

需要进驻nacos的微服务都引入nacos依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

application.yml配置nacos服务地址和应用名称

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: mall-product

在启动类中开启服务发现注解

@EnableDiscoveryClient

然后启动对应服务,就能在nacos管理页面中看见了 image-1655633554608

作为配置中心

运行Nacos-Server

参考

引入依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

配置

创建一个bootstrap.properties文件

spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

(optional)开启配置自动刷新

不开启则只会从配置中心读取一次配置,配置中心更改本地不会更改 在有配置值使用的类上加入@RefreshScope注解 image-1655645621153

发布配置

选择新建配置,填写id和group,选择配置格式,填好内容即可发布 在工程中使用无需建立对应文件,会自动从配置中心读取 image-1655645665297 image-1655645702543

环境:

  • Springboot 2.7.0
  • image-1655645273515

无法从配置中心读取配置,需要引入依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.0.2</version>
        </dependency>

细节使用

namespace命名空间

用于配置隔离 image-1655689826935 image-1655689915403

  • 基于环境 测试,开发,生产
  • 基于微服务 每个微服务设置对应的命名空间 设置完命名空间后在模块的bootstrap.properties中指定
spring.cloud.nacos.config.namespace=e53f0032-f627-48a8-943e-0886902a4c0e

配置集

一堆相关或不相关的配置的集合,在nacos中体现为一个配置文件

配置 id

就是一个配置文件的Data Id

group

在新建配置文件时选定组 image-1655690706201 image-1655690697418 然后再模块bootstrap.properties内指定

spring.cloud.nacos.config.group=Double_One_One

无论是Data Id亦或是Group都不能使用纯数字命名