携手创作,共同成长!这是我参与「掘金日新计划 · 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
微服务注册
需要进驻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管理页面中看见了
作为配置中心
运行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注解
发布配置
选择新建配置,填写id和group,选择配置格式,填好内容即可发布
在工程中使用无需建立对应文件,会自动从配置中心读取
坑
环境:
- Springboot 2.7.0
无法从配置中心读取配置,需要引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.2</version>
</dependency>
细节使用
namespace命名空间
用于配置隔离
- 基于环境 测试,开发,生产
- 基于微服务
每个微服务设置对应的命名空间
设置完命名空间后在模块的
bootstrap.properties中指定
spring.cloud.nacos.config.namespace=e53f0032-f627-48a8-943e-0886902a4c0e
配置集
一堆相关或不相关的配置的集合,在nacos中体现为一个配置文件
配置 id
就是一个配置文件的Data Id
group
在新建配置文件时选定组
然后再模块
bootstrap.properties内指定
spring.cloud.nacos.config.group=Double_One_One
坑
无论是Data Id亦或是Group都不能使用纯数字命名