Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
在Nacos控制台添加配置文件
格式和开发中是一样的,这里也是使用YAML文件
服务中,引入nacos-config的客户端依赖:
<!--nacos配置管理依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
在服务模块中中添加一个bootstrap.yaml文件,内容如下:
spring: application: name: userservice # 服务名称 profiles: active: dev #开发环境,这里是dev cloud: nacos: server-addr: 192.168.3.22:8848 # Nacos地址 discovery: cluster-name: BJ # 集群 默认DEFAULT namespace: 82e1d425-3424-4944-9429-1882d7c67398 # 命名空间 # ephemeral: false # 是否临时 config: file-extension: yaml # 文件后缀名
这里会根据spring.cloud.nacos.server-addr获取nacos地址,再根据
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id,来读取配置。
使用方式有两种方式
第一种直接使用Value注解
在Controller中增加一个变量
@Value("${blog.name}") private String blogName;
为了这个配置实现实时更新,在Controller上增加一个注解
@RefreshScope public class UserController {}
此时使用该变量是从Nacos中读取的,如果在Nacos中变更,客户端这边也会实时收到更新。
第二种是增加一个专门管理配置的类,先注释之前的变量和注解
package cn.itcast.user.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * @Auther: Java小强 * @Date: 2022/1/30 - 15:44 * @Decsription: cn.itcast.user.config * @Version: 1.0 */ @Data @Component @ConfigurationProperties(prefix = "blog") public class BlogConfig { private String name; }
然后在Controller中注入该类进行使用即可。