Nacos服务分级存储模型
① 一级是服务,例如userservice
②二级是集群,例如杭州或上海
③ 三级是实例,例如杭州机房的某台部署了userservice的服务器
配置实例集群属性
改变服务的yml文件
spring:cloud:nacos:discovery:cluster-name: HZ
NacosRule负载均衡
在调用模块的yml中添加
userservice:ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
根据权重负载均衡
环境隔离(namespace)
配置管理
配置更改热更新
统一配置管理:
步骤:
1.引入依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
2.在服务模块添加bootstrap.yml(优先级高于application. yml)
spring:application:name: userserviceprofiles:active: devcloud:nacos:server-addr: localhost:8848config:file-extension: yaml
执行步骤:项目启动-》读取nacos中配置文件(以bootstrap.yml为引导)-》读取本地配置文件application.yml-》创建spring容器-》加载bean
配置热更新
方法一:在@Value注入的变量所在类上添加注解@RefreshScope
@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
}
方法二:使用@ConfigurationProperties注解
package cn.itcast.user.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** PatternProperties** @author huang* @package cn.itcast.user.config* @since 2024/3/1 19:36*/
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {private String dataformat;
}
之后要用自动装配把PatternProperties实例对象自动加载到要使用的地方
多环境配置共享
Data Id为服务名就是多环境配置共享
如果要分开发和发布环境,要加上-dev或-test之类的
配置优先级:服务名-profile.yaml >服务名称yaml>本地配置