搜索
您的当前位置:首页正文

Nacos使用手册

来源:好走旅游网

1. 引入依赖

pom.xml 中添加 Nacos 相关的依赖,包括 Nacos 服务发现、配置管理和 Spring Cloud 启动器的依赖:

<!-- 引入 Nacos 服务发现依赖 -->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
   <!-- 该依赖用于 Spring Cloud 应用集成 Nacos 服务发现功能 -->
</dependency>

<!-- 引入 Nacos 配置管理依赖 -->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
   <!-- 该依赖用于 Spring Cloud 应用集成 Nacos 配置管理功能 -->
</dependency>

<!-- 引入 Spring Cloud 启动器 -->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-bootstrap</artifactId>
   <!-- 该依赖用于 Spring Boot 配置的引导,通常在配置文件 (bootstrap.yaml) 中加载 Nacos 配置 -->
</dependency>

2. 配置 Nacos 服务

spring:
  application:
    name: cart-service
  cloud:
    nacos:
      discovery:
        server-addr: xiaotianlong.xyz:8848
      config:
        server-addr: xiaotianlong.xyz:8848
        file-extension: yaml

3. 配置共享

3.1 添加配置共享模版

通过 Nacos 的共享配置功能,可以将不同服务共享的配置存储在 Nacos 中,避免重复配置。

3.2 更新 bootstrap.yaml

bootstrap.yaml 中,增加共享配置的配置项,确保应用能够加载 Nacos 配置:

spring:
  application:
    name: cart-service  # 这里设置应用名称
  cloud:
    nacos:
      discovery:
        server-addr: xiaotianlong.xyz:8848  # Nacos 服务地址
      config:
        server-addr: xiaotianlong.xyz:8848  # 配置服务地址
        file-extension: yaml  # 配置文件的格式(yaml)
        shared-configs:  # 配置共享项
          - data-id: shared-jdbc.yaml  # 配置的 dataId
            refresh: true  # 是否启用热更新
          - data-id: shared-log.yaml
            refresh: true
          - data-id: shared-swagger.yaml
            refresh: true
  • shared-configs: 配置共享的配置项,data-id 是 Nacos 上共享配置的唯一标识,refresh 设置为 true 表示启用热更新。

3.3 更新 application.yaml

application.yaml 中配置应用特定的属性,读取共享的配置信息:

server:
  port: 8081  # 配置服务端口
hm:
  db:
    host: xiaotianlong.xyz  # 数据库主机地址
    port: 3306  # 数据库端口
    database: hm-cart  # 数据库名称
    un: root  # 数据库用户名
    pw: 123  # 数据库密码
  swagger:
    title: 购物车管理接口文档  # Swagger 接口文档的标题
    desc: 购物车管理接口文档  # Swagger 描述
    package: com.hmall.cart.controller  # Swagger 扫描的包路径
  • server.port: 配置应用监听的端口。
  • hm.db: 配置数据库连接信息。
  • hm.swagger: 配置 Swagger 的接口文档信息。

4. 配置热更新

4.1 添加配置文件

为了启用 Nacos 配置的热更新功能,我们需要在 Nacos 控制台中提交配置文件,并确保命名格式正确。

文件命名规则:[服务名]-[spring.active.profile].[后缀名]

  • 服务名:如 cart-service
  • spring.active.profile:如 devprod,指定当前环境,默认为 default
  • 后缀名:如 yamlproperties

例如,配置文件可以命名为:cart-service-dev.yaml

提交配置后,可以在 Nacos 控制台中查看已上传的配置。

4.2 配置热更新

通过 Java 代码读取配置并启用热更新功能,我们可以使用 @ConfigurationProperties 注解来绑定 Nacos 配置。

package com.hmall.cart.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "hm.cart")  // 绑定前缀为 "hm.cart" 的配置
public class CartProperties {
    private Integer maxAmount;  // 购物车最大金额
}
  • @ConfigurationProperties(prefix = "hm.cart"): 将 Nacos 中的配置项绑定到 CartProperties 类的属性中。
  • maxAmount: 在配置文件中定义的最大购物车金额。

此时,如果 maxAmount 的值在 Nacos 中发生变化,Spring 会自动加载最新的配置,支持热更新。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top