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>本地配置