欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微服务解决方案 -- Spring Cloud Alibaba (五)分布式配置中心

程序员文章站 2022-07-05 23:12:51
...

不了解此套教程的可以移步之前章节
1.微服务解决方案 – Spring Cloud Alibaba (一)服务的注册与发现
2.微服务解决方案 – Spring Cloud Alibaba (二)服务提供者
3.微服务解决方案 – Spring Cloud Alibaba (三)服务消费者(Feign)
4.微服务解决方案 – Spring Cloud Alibaba (四)服务熔断

分布式配置中心


Spring Cloud Netfilx的时候,使用Config来做配置中心,现在Nacos Config 是现在的代替方案。

服务端


我们把自己的配置文件写入Nacos

微服务解决方案 -- Spring Cloud Alibaba (五)分布式配置中心
微服务解决方案 -- Spring Cloud Alibaba (五)分布式配置中心

点击发布即可。

客户端


以提供者为例子添加依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

添加依赖需要一定的时间,删除服务提供者的application.yml,并且创建bootstrap.properties

## 配置名
spring.application.name=service-provider-config
## Nacos 
spring.cloud.nacos.config.server-addr=192.168.0.108:8848
## 使用的是yaml 默认是properties
spring.cloud.nacos.config.file-extension=yaml

微服务解决方案 -- Spring Cloud Alibaba (五)分布式配置中心
启动以后可以看到我们确实能读取到配置。

动态刷新配置


Nacos Config还有一个特点是可以动态刷新配置。我们先在云配置文件上一些自己的配置。
微服务解决方案 -- Spring Cloud Alibaba (五)分布式配置中心
修改服务提供者

@RefreshScope  // 打开动态刷新功能
@RestController
public class EchoController {

    @Value("${server.port}")
    private String port;
    // 注入配置文件的 user 
    @Value("${user}")
    private String user;

    @GetMapping(value = "/echo/{string}")
    public String echo(@PathVariable String string) {
        return "Hello " + user + " Provider " + string + " i am from port: " + port;
    }
}

微服务解决方案 -- Spring Cloud Alibaba (五)分布式配置中心
接下来将云配置文件的user的值修改,点击刷新,可以看到user的值已经修改。
微服务解决方案 -- Spring Cloud Alibaba (五)分布式配置中心