Nacos 注册中心&配置中心——简单入门

介绍

  1. Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
  2. 相对于 Spring Cloud Eureka 来说,Nacos 更强大。Nacos = Spring Cloud Eureka + Spring Cloud Config
  3. Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config
  4. 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。
  5. 如果微服务架构中没有使用统一配置中心时,所存在的问题:
  • 配置文件分散在各个项目里,不方便维护
  • 配置内容安全与权限
  • 更新配置后,项目需要重启
    nacos配置中心:系统配置的集中管理(编辑、存储、分发)、动态更新不重启、回滚配置(变更管理、历史版本管理、变更审计)等所有与配置相关的活动。

Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。
Nacos主要提供以下四大功能:

  1. 服务发现和服务健康监测
  2. 动态配置服务
  3. 动态DNS服务
  4. 服务及其元数据管理

官方文档

请先通过官方文档快速安装nacos

Nacos 快速开始

快速开始

1.启动 nacos

bin文件夹中启动

startup.cmd -m standalone windows
./startup.sh -m standalone linux
sh startup.sh -m standalone linux

2.作注册中心

服务注册

引入依赖

<!--
SpringCloud Alibaba环境指定:
SpringBoot环境:2.3.12.RELEASE
SpringCloud环境:Hoxton.SR12
SpringCloud Alibaba环境:2.2.7.RELEASE
-->
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

配置文件 application.yml

server:
port: 8081
spring:
application:
name: nacos-provider # 服务名
cloud:
nacos:
discovery:
# nacos服务地址
server-addr: localhost:8848/

启动类加上注解 @EnableDiscoveryClient

正常的话就可以在 nacos上看到此服务了

3.作配置中心

加载 nacos上配置文件

引入依赖

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

配置文件 bootstrap.yml

  • 系统级别的配置文件,优先级要高于application.yml,先加载
  • 通常系统级别的配置文件,加载一些需要优先加载的配置信息,比如:配置中心的内容
spring:
cloud:
nacos:
config:
# nacos服务地址(记得先在 nacos上创建配置文件)
server-addr: localhost:8848
# 账号、密码
# username: nacos
# password: nacos
# 命名空间ID,默认public
# namespace: public
# 加载配置文件信息
prefix: application-test
# 配置文件默认扩展名,默认Properties
file-extension: yaml
# 实时更新配置文件,默认true
refresh-enabled: true
# 配置文件组,默认DEFAULT_GROUP,可以针对业务进行分组,如订单模块,库存模块等
group: DEFAULT_GROUP
# 加载多个配置文件,类似Maven的拆分和聚合操作
profiles:
active: dev #dev、test、prod 三种配置可以在这里进行一键切换,默认激活 dev(开发)环境配置

在 nacos上创建文件 application-test.yml

server:
port: 8088
spring:
application:
name: nacos-gateway
cloud:
nacos:
discovery:
# 加载Nacos注册中心地址
server-addr: localhost:8848
gateway:
routes:
- id: toConsumer
predicates:
- Path=/consumer/**
uri: lb://006-nacos-consumer
- id: toBaidu
predicates:
- Path=/
uri: https://www.baidu.com
- id: toBaiduNews
predicates:
- Path=/, /guonei, /guoji
uri: https://news.baidu.com/

@RefreshScope

控制器 controller加上注解,则修改 Nacos配置中心的配置信息后,客户端也能实时获取到配置信息

配置文件的拆分和聚合

可以把以上 application-test.yml 拆分成几个 yaml文件,再通过 bootstrap 配置聚合
请先分别在 nacos创建以下5个配置文件,并把上述 application-test.yml 拆分到这几个文件中

spring:
cloud:
nacos:
config:
# 加载Nacos配置中心地址
server-addr: localhost:8848
# 加载配置信息的命名空间
namespace: 8600ea68-008b-4d9e-8d50-d78b4b4803a0
# 把上面的yaml文件在nacos中拆分成多个配置文件
# 同时加载多个配置文件,系统会自动聚合在一起
extension-configs:
- dataId: application-base.yaml
group: base
refresh: true
- dataId: application-server.yaml
group: SERVER
refresh: true
- dataId: application-spring.yaml
group: spring
refresh: true
- dataId: application-nacos.yaml
group: nacos
refresh: true
- dataId: application-gateway.yaml
group: gateway
refresh: true

扩展:持久化操作

  • 找到nacos/conf目录中的application.properties
spring.datasource.platform=mysql #持久化平台
db.num=1 # 存储节点数量
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos #数据库用户名
db.password.0=nacos #数据库密码
  • mysql创建数据库和表结构
    • 要求Mysql的版本必须为 5.7+
    • nacos/conf目录下nacos-mysql.sql
    • 将这个文件创建到数据库中,生成表结构,重启启动Nacos即可
posted @   Acegzx  阅读(121)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示