微服务服务之间远程调用的几种方式(RestTemplate、Eureka、Nacos、feign) | 您所在的位置:网站首页 › 地图的模式有几种 › 微服务服务之间远程调用的几种方式(RestTemplate、Eureka、Nacos、feign) |
在nacos首页【配置管理】-【配置列表】-点击+号添加配置,然后在弹出的表单中,填写配置信息: Data ID: userservice-dev.properties Group: DEFAULT_GROUP 描述:开发环境配置 配置格式:properties 配置内容:pattern.dateformat=yyyy-MM-dd HH:mm:ss注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要。基本不会变更的一些配置还是保存在微服务本地比较好。 微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。 但如果尚未读取application.yml,又如何得知nacos地址呢? 因此spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,流程就是在项目启动时会读取先bootstrap.yaml和nacos上的配置信息,并整合到项目中,读取application.properties文件,创建spring容器并加载bean。 首先,在user-service服务中,引入nacos-config的客户端依赖: com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config然后,在user-service中添加一个bootstrap.properties文件,内容如下: spring.application.name=userservice spring.profiles.active=dev spring.cloud.nacos.server-addr=localhost:8848 spring.cloud.nacos.config.file-extension=properties这里会根据spring.cloud.nacos.server-addr获取nacos地址,再根据 ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id,来读取配置。 在user-service中的UserController中添加业务逻辑,读取pattern.dateformat配置: @Value("${pattern.dateformat}") private String dateformat; @GetMapping("now") public String now(){ return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat)); }我们最终的目的,是修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新。 使用@ConfigurationProperties注解代替@Value注解。 在user-service服务中,添加一个类,读取patterrn.dateformat属性: package cn.itcast.user.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @Data @ConfigurationProperties(prefix = "pattern") public class PatternProperties { private String dateformat; }修改UserController的业务逻辑 @Autowired private PatternProperties patternProperties; @GetMapping("now") public String now(){ return LocalDateTime.now().format(DateTimeFormatter. ofPattern(patternProperties.getDateformat())); }配置共享:创建配置时,将Data ID设置为 服务名.properties 即可。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |