# ==============================================================
# Nacos Client Configuration - Spring Cloud Alibaba
# 用于所有微服务的公共配置
# Spring Boot 3.x + Spring Cloud 2023.x + Nacos 2.2.x
# ==============================================================

# ---------------------------------------------------------------
# Spring Cloud Alibaba Nacos Discovery (服务注册与发现)
# ---------------------------------------------------------------
spring.cloud.nacos.discovery.enabled=true
# Nacos服务器地址（集群模式用VIP/域名）
spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR:127.0.0.1:8848}
# 命名空间（用于环境隔离：dev/test/prod）
spring.cloud.nacos.discovery.namespace=${NACOS_NAMESPACE:public}
# 分组（用于业务隔离）
spring.cloud.nacos.discovery.group=${NACOS_GROUP:DEFAULT_GROUP}
# 注册实例数（单机模式=1，集群模式可>1）
spring.cloud.nacos.discovery.instance-count=1
# prefer IP: 是否优先使用IP而非hostname
spring.cloud.nacos.discovery.prefer-ip-address=true
# IP:优先使用指定IP注册
# spring.cloud.nacos.discovery.ip=${SERVICE_IP:127.0.0.1}
# 端口:优先使用指定端口注册
# spring.cloud.nacos.discovery.port=${SERVER_PORT:8080}
# 心跳间隔（默认5秒）
spring.cloud.nacos.discovery.heart-beat-interval=5000
# 心跳超时（默认15秒，服务15秒没响应认为不健康）
spring.cloud.nacos.discovery.heart-beat-timeout=15000
# 实例元数据更新间隔（默认30秒）
spring.cloud.nacos.discovery.metadata-refresh-interval=30000
# 是否开启优雅下线（默认true）
spring.cloud.nacos.discovery.enabled-healthy-rule=true
# 负载均衡权重（默认1.0）
spring.cloud.nacos.discovery.weight=1.0

# ---------------------------------------------------------------
# Spring Cloud Alibaba Nacos Config (配置中心)
# ---------------------------------------------------------------
spring.cloud.nacos.config.enabled=true
spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.discovery.server-addr}
spring.cloud.nacos.config.namespace=${NACOS_NAMESPACE:public}
spring.cloud.nacos.config.group=${NACOS_GROUP:DEFAULT_GROUP}
# 配置文件扩展名
spring.cloud.nacos.config.file-extension=yaml
# 共享配置（多个微服务共享的配置data_id）
spring.cloud.nacos.config.shared-configs[0]=common-config.yaml
spring.cloud.nacos.config.shared-configs[1]=redis-config.yaml
# 刷新间隔（默认3000ms）
spring.cloud.nacos.config.refresh-enabled=true

# ---------------------------------------------------------------
# Nacos认证（生产环境必须配置）
# ---------------------------------------------------------------
spring.cloud.nacos.discovery.username=${NACOS_USERNAME:nacos}
spring.cloud.nacos.discovery.password=${NACOS_PASSWORD:nacos123456}
spring.cloud.nacos.config.username=${NACOS_USERNAME:nacos}
spring.cloud.nacos.config.password=${NACOS_PASSWORD:nacos123456}

# ---------------------------------------------------------------
# Actuator健康检查端点（配合Nacos健康检查）
# ---------------------------------------------------------------
management.endpoints.web.exposure.include=health,info,metrics,env
management.endpoint.health.show-details=always
management.health.nacos.enabled=true
# 健康检查路径
management.endpoint.health.probes.enabled=true
management.endpoint.health.path=/actuator/health
# Prometheus指标（可选，用于监控）
management.metrics.export.prometheus.enabled=true
management.metrics.export.prometheus.additional-location=classpath:deployment/prometheus.yml

# ---------------------------------------------------------------
# 服务注册元数据（自定义元数据，可用于路由、标签等）
# ---------------------------------------------------------------
# spring.cloud.nacos.discovery.metadata.version=${SERVICE_VERSION:v1.0.0}
# spring.cloud.nacos.discovery.metadata.env=${SPRING_PROFILES_ACTIVE:dev}
# spring.cloud.nacos.discovery.metadata.region=${REGION:cn-east}
