返回

软件架构 - 简析Spring Cloud Config分布式集中配置中心(下)

后端

源码

@RestController
@RefreshScope
public class ConfigController {

    @Autowired
    private ConfigurableApplicationContext context;

    @Value("${username}")
    private String username;

    @Value("${password}")
    private String password;

    @Value("${message}")
    private String message;

    @GetMapping("/config")
    public String config() {
        return "username: " + username + ", password: " + password + ", message: " + message;
    }

    @GetMapping("/refresh")
    public String refresh() {
        context.refresh();
        return "配置已刷新";
    }
}

添加依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

在Controller上添加注解@RefreshScope

@RestController
@RefreshScope
public class ConfigController {

    // ...
}

这个注解的作用是让Controller在配置更改时得到特殊的处理,从而可以自动更新配置信息。

演示功能

  1. 启动项目(启动两个,一个是Config Server,一个是Config Client)

  2. 访问Config Server的/config接口,查看配置信息

  3. 修改配置信息,然后刷新Config Server的/refresh接口

  4. 访问Config Client的/config接口,查看配置信息

总结

Spring Cloud Config是一种分布式配置中心,主要功能是集中存储和管理微服务的配置信息。它提供了多种特性,包括:

  • 分布式存储:配置信息存储在分布式存储系统中,如Git、SVN、Consul等。
  • 集中管理:所有配置信息都集中存储在一个地方,便于管理和维护。
  • 动态刷新:配置信息可以动态刷新,无需重启应用程序。
  • 安全控制:配置信息可以进行安全控制,如加密、权限控制等。
  • Spring Cloud Config是Spring Cloud生态系统中的一个重要组件,它可以帮助我们轻松管理微服务的配置信息。