KCloud-Platform-IoT KCloud-Platform-IoT
首页
  • 活动

    • KCloud-Platform-IoT 开源三周年快乐&父亲节快乐
  • 指南

    • 后端项目启动
    • 前端项目启动
    • Docker安装
    • Linux常用命令
    • Docker常用命令
    • JVM性能优化
    • 项目配置
    • COLA代码规范
    • OAuth2.1授权服务器配置
    • OAuth2.1资源服务器配置
    • OAuth2.1认证API配置
    • Nacos配置
    • 网关路由配置
    • 项目常用注解
    • Elasticsearch注解
    • Spring Cloud Alibaba配置
    • Spring Cloud Gateway配置
赞助
GitHub (opens new window)
首页
  • 活动

    • KCloud-Platform-IoT 开源三周年快乐&父亲节快乐
  • 指南

    • 后端项目启动
    • 前端项目启动
    • Docker安装
    • Linux常用命令
    • Docker常用命令
    • JVM性能优化
    • 项目配置
    • COLA代码规范
    • OAuth2.1授权服务器配置
    • OAuth2.1资源服务器配置
    • OAuth2.1认证API配置
    • Nacos配置
    • 网关路由配置
    • 项目常用注解
    • Elasticsearch注解
    • Spring Cloud Alibaba配置
    • Spring Cloud Gateway配置
赞助
GitHub (opens new window)
  • 活动

    • KCloud-Platform-IoT 开源三周年快乐&父亲节快乐
  • 指南

    • 后端项目启动
    • 前端项目启动
    • Docker安装
    • Linux常用命令
    • Docker常用命令
    • JVM性能优化
    • 项目配置
    • COLA代码规范
    • OAuth2.1授权服务器配置
    • OAuth2.1资源服务器配置
    • OAuth2.1认证API配置
    • Nacos配置
    • 网关路由配置
    • 项目常用注解
    • Elasticsearch注解
    • Spring Cloud Alibaba配置
      • 2. Nacos 配置中心(Config)
        • 配置项
        • 示例
      • 3. Nacos 配置导入(Config Import)
        • 配置项
        • 示例
      • 4. 负载均衡(Loadbalancer)
        • 配置项
        • 示例
      • 5. Sentinel 流量防护
        • 5.1 基础配置
        • 5.2 数据源配置(Nacos 持久化规则)
        • 示例
        • Sentinel 规则类型速查
      • 6. 网络接口过滤(inetutils)
        • 配置项
        • 示例
      • 完整配置总览
      • 配置来源说明
    • Spring Cloud Gateway配置
  • 二开指南
  • 指南
KCloud-Platform-IoT
2026-02-11
目录

Spring Cloud Alibaba配置

你好呀,我的老朋友!我是老寇,欢迎来到老寇IoT云平台!

配置前缀:spring.cloud.nacos.discovery

将服务注册到 Nacos 注册中心,并从中发现其他服务。

# 配置项

配置项 类型 默认值 说明
enabled boolean true 是否开启服务注册与发现
server-addr string — Nacos 服务地址(如 127.0.0.1:8848)
namespace string — 命名空间 ID,用于环境隔离(dev / test / prod)
username string — Nacos 登录用户名
password string — Nacos 登录密码
group string DEFAULT_GROUP 服务分组
secure boolean false 是否启用 HTTPS 通信
ephemeral boolean true true = 临时实例(默认),false = 持久实例
cluster-name string — 集群名称,用于同集群优先调用
heart-beat.enabled boolean true 是否开启心跳检测
heart-beat-interval int (ms) 5000 心跳发送间隔(毫秒)
heart-beat-timeout int (ms) 15000 超过此时间无心跳,标记为不健康(毫秒)

# 示例

spring:
  cloud:
    nacos:
      discovery:
        # 开启服务注册&发现
        enabled: true
        server-addr: ${NACOS_DISCOVERY_ADDRESS:nacos:8848}
        namespace: ${NACOS_NAMESPACE:public}
        username: ${NACOS_USERNAME:nacos}
        password: ${NACOS_PASSWORD:nacos}
        group: ${NACOS_GROUP:IOT_GROUP}
        # 是否启用 HTTPS
        secure: false
        # true 临时实例 / false 持久实例
        ephemeral: true
        cluster-name: ${NACOS_CLUSTER_NAME:iot-cluster}
        heart-beat:
          # 开启心跳检测
          enabled: true
        # 每 10 秒发送一次心跳
        heart-beat-interval: 10000
        # 超过 30 秒无心跳标记为不健康
        heart-beat-timeout: 30000

💡 提示: 使用环境变量(${NACOS_DISCOVERY_ADDRESS:nacos:8848})可使同一份配置在不同环境中复用,仅需在启动参数或 .env 文件中切换。


# 2. Nacos 配置中心(Config)

配置前缀:spring.cloud.nacos.config

从 Nacos 拉取外部化配置,支持动态刷新。

# 配置项

配置项 类型 默认值 说明
enabled boolean true 是否开启配置中心
server-addr string — Nacos 配置中心地址
namespace string — 命名空间 ID
username string — Nacos 登录用户名
password string — Nacos 登录密码
cluster-name string — 集群名称
file-extension string properties 读取的配置文件格式:yaml / properties / json
group string DEFAULT_GROUP 配置分组
refresh-enabled boolean true 是否启用配置动态刷新

# 示例

spring:
  cloud:
    nacos:
      config:
        # 开启配置中心
        enabled: true
        server-addr: ${NACOS_CONFIG_ADDRESS:nacos:8848}
        namespace: ${NACOS_NAMESPACE:public}
        username: ${NACOS_USERNAME:nacos}
        password: ${NACOS_PASSWORD:nacos}
        cluster-name: ${NACOS_CLUSTER_NAME:iot-cluster}
        # 指定读取的文件格式
        file-extension: yaml
        group: ${NACOS_GROUP:IOT_GROUP}
        refresh-enabled: true

⚠️ 重要: file-extension 必须与 Nacos 控制台上配置的 Data ID 后缀一致。例如 Data ID 为 laokou-auth.yaml,则此处必须填 yaml。


# 3. Nacos 配置导入(Config Import)

配置前缀:spring.config.import

Spring Boot 2.4+ 引入的标准配置导入方式,用于从 Nacos 拉取指定配置文件。

# 配置项

参数 说明
optional:nacos:<dataId> 要拉取的 Nacos 配置文件 Data ID,optional: 表示文件不存在时不报错
refreshEnabled=true 开启配置自动刷新
group=<GROUP> 指定配置所属分组(解决默认 DEFAULT_GROUP 问题)

# 示例

spring:
  config:
    import:
      # 拉取 nacos 配置文件,指定 group 避免默认 DEFAULT_GROUP 问题
      - optional:nacos:laokou-auth.yaml?refreshEnabled=true&group=${NACOS-GROUP}

📝 说明: 使用 optional: 前缀后,即使 Nacos 上不存在该配置文件,应用也能正常启动,不会抛出异常。


# 4. 负载均衡(Loadbalancer)

配置前缀:spring.cloud.loadbalancer

Spring Cloud LoadBalancer 客户端负载均衡配置,项目中集成了 Nacos 负载均衡策略。

# 配置项

配置项 类型 默认值 说明
nacos.enabled boolean false 是否使用 Nacos 权重负载均衡策略(替代默认的 RoundRobin)

# 示例

spring:
  cloud:
    loadbalancer:
      nacos:
        # 启用 Nacos 权重负载均衡
        enabled: true

💡 提示: 启用后,LoadBalancer 将结合 Nacos 中服务实例的权重和集群信息进行路由,优先选择同集群、高权重的实例,适用于多机房、灰度发布等场景。


# 5. Sentinel 流量防护

配置前缀:spring.cloud.sentinel

Alibaba Sentinel 提供流量控制、熔断降级、系统负载保护。

# 5.1 基础配置

配置项 类型 默认值 说明
eager boolean false 是否饥饿加载(启动时即初始化 Sentinel,而非首次调用时)
web-context-unify boolean true 是否统一 Web 上下文。设为 false 可对不同 URL 分别限流
filter.enabled boolean true 是否启用 Sentinel 的 Servlet Filter 拦截
transport.dashboard string — Sentinel Dashboard 地址(如 sentinel:8972)

# 5.2 数据源配置(Nacos 持久化规则)

配置前缀:spring.cloud.sentinel.datasource.<name>.nacos

将 Sentinel 规则持久化到 Nacos,避免重启丢失。

配置项 类型 说明
server-addr string Nacos 服务地址
namespace string 命名空间
data-id string 规则文件的 Data ID(如 auth-flow.json)
data-type string 数据格式:json / xml
group-id string 配置分组
username string Nacos 用户名
password string Nacos 密码
rule-type string 规则类型:flow / degrade / system / authority / param-flow

# 示例

spring:
  cloud:
    sentinel:
      # 饥饿加载,启动时初始化
      eager: true
      # 不统一上下文,对不同 URL 分别限流
      web-context-unify: false
      transport:
        dashboard: sentinel:8972
      filter:
        enabled: true
      datasource:
        # 自定义数据源名称
        db0:
          nacos:
            server-addr:${NACOS_CONFIG_ADDRESS:nacos:8848}
            namespace: ${NACOS_NAMESPACE:public}
            data-id: auth-flow.json
            data-type: json
            group-id: ${NACOS_GROUP:IOT_GROUP}
            username: ${NACOS_USERNAME:nacos}
            password: ${NACOS_PASSWORD:nacos}
            # flow = 流控规则
            rule-type: flow

⚠️ 注意: web-context-unify 设为 false 时,每个 URL 入口会创建独立的 Context,如果接口数量过多可能增加内存开销,请根据实际场景权衡。

# Sentinel 规则类型速查

rule-type 含义 用途
flow 流量控制 QPS / 线程数限流
degrade 熔断降级 慢调用比例、异常比例、异常数
system 系统保护 CPU 使用率、系统 Load 等
authority 授权规则 黑白名单控制
param-flow 热点参数 对某个参数值单独限流

# 6. 网络接口过滤(inetutils)

配置前缀:spring.cloud.inetutils

控制服务注册时使用哪张网卡的 IP 地址。在 Docker / 多网卡环境下非常重要。

# 配置项

配置项 类型 说明
ignored-interfaces list 需要忽略的网络接口名称(支持正则)

# 示例

spring:
  cloud:
    inetutils:
      ignored-interfaces:
        # 忽略 Docker 虚拟网卡
        - docker0
        # 忽略 veth 开头的虚拟网卡
        - veth.*

⚠️ 重要: 在容器化部署环境中,Docker 会创建虚拟网卡(docker0、veth*),若不忽略这些接口,服务可能注册虚拟网卡的 IP,导致其他服务无法访问。


# 完整配置总览

以下为 laokou-auth 模块中所有 spring.cloud 相关配置的完整汇总:

spring:
  # Nacos 配置导入
  config:
    import:
      - optional:nacos:laokou-auth.yaml?refreshEnabled=true&group=${NACOS_GROUP:IOT_GROUP}
  cloud:
    # ========== 负载均衡 ==========
    loadbalancer:
      nacos:
        enabled: true

    # ========== 网络接口过滤 ==========
    inetutils:
      ignored-interfaces:
        - docker0
        - veth.*

    # ========== Sentinel 流量防护 ==========
    sentinel:
      eager: true
      web-context-unify: false
      transport:
        dashboard: sentinel:8972
      filter:
        enabled: true
      datasource:
        db0:
          nacos:
            server-addr: @NACOS-CONFIG-ADDRESS@
            namespace: @NACOS-NAMESPACE@
            data-id: auth-flow.json
            data-type: json
            group-id: ${NACOS_GROUP:IOT_GROUP}
            username: ${NACOS_USERNAME:nacos}
            password: ${NACOS_PASSWORD:nacos}
            rule-type: flow

    # ========== Nacos 服务发现 ==========
    nacos:
      discovery:
        enabled: true
        server-addr: ${NACOS_DISCOVERY_ADDRESS:nacos:8848}
        namespace: ${NACOS_NAMESPACE:public}
        username: ${NACOS_USERNAME:nacos}
        password: ${NACOS_PASSWORD:nacos}
        group: ${NACOS_GROUP:IOT_GROUP}
        secure: false
        ephemeral: true
        cluster-name: ${NACOS_CLUSTER_NAME:iot-cluster}
        heart-beat:
          enabled: true
        heart-beat-interval: 10000
        heart-beat-timeout: 30000

      # ========== Nacos 配置中心 ==========
      config:
        enabled: true
        server-addr: ${NACOS_CONFIG_ADDRESS:nacos:8848}
        namespace: ${NACOS_NAMESPACE:public}
        username: ${NACOS_USERNAME:nacos}
        password: ${NACOS_PASSWORD:nacos}
        cluster-name: ${NACOS_CLUSTER_NAME:iot-cluster}
        file-extension: yaml
        group: ${NACOS_GROUP:IOT_GROUP}
        refresh-enabled: true

# 配置来源说明

文件 包含的 Spring Cloud 配置
application.yml loadbalancer、inetutils、sentinel
application-dev.yml nacos.discovery、nacos.config、config.import

📝 说明: application.yml 中的配置对所有环境生效;application-dev.yml 仅在 spring.profiles.active=dev 时生效。通过 Profile 分离环境差异,主配置文件保持通用。

我是老寇,我们下次再见啦!

上次更新: 2/11/2026, 8:53:44 PM
Elasticsearch注解
Spring Cloud Gateway配置

← Elasticsearch注解 Spring Cloud Gateway配置→

Theme by Vdoing | Copyright © 2022-2026 laokou | Apache 2.0 License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式