配置Spring Cloud Config

时间:2015-05-04 14:37:29

标签: java spring spring-cloud

我想问两个关于 Spring Cloud Config 的问题。

1) 是否可以执行 Spring Cloud Config Server 来恢复基本属性 mongodb < / strong>而不是 git

2) Spring Cloud配置客户端安装程序在 Spring Cloud Config Server中更改所有权后自动更新< /强>

感谢!!!

4 个答案:

答案 0 :(得分:3)

Spring Cloud Config Server MongoDB现已在Github上提供。

要启动并运行,您需要做的就是添加maven配置,如下所示,将@EnableMongoConfigServer添加到Spring Boot应用程序配置并配置所需的spring.data.mongodb.*属性。

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server-mongodb</artifactId>
        <version>0.0.1.BUILD-SNAPSHOT</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>ojo-snapshots</id>
        <name>OJO Snapshots</name>
        <url>https://oss.jfrog.org/artifactory/libs-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

然后你可以像下面这样向MongoDB添加配置文件:

db.appname.insert({
   "label": "master",
   "profile": "prod",
   "source": {
        "user": {
            "max-connections": 1,
            "timeout-ms": 3600
        }
    }
});

并通过http://localhost:8080/master/appname-prod.properties访问它们以获得如下响应:

user.max-connections: 1.0
user.timeout-ms: 3600.0

<强>更新 我们已升级spring-cloud-config-server-mongodb以使用spring-boot 1.5.7快照。

答案 1 :(得分:1)

  1. 是的,欢迎提出拉请求
  2. 没有推,但你可以用spring @Scheduled来打电话 RefreshEndpoint.refresh()以间隔为基础。

答案 2 :(得分:1)

不确定1。 2)你有spring-cloud-bus,当你在配置服务器上进行更改时,它可以自动为所有客户端提供推送通知。 http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html

需要以下内容: 1. RabbitMQ / Redis在本地运行 2.在config server pom xml中添加此依赖项。使用Brixton.M5构建。

<parent>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-parent</artifactId>
      <!-- <version>Brixton.BUILD-SNAPSHOT</version> -->
      <version>Brixton.M5</version>
      <relativePath /> 
    </parent>
<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-monitor</artifactId>
        <scope>test</scope>
    </dependency>
     <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>

3。除了您可能已经拥有的spring-config-client依赖项之外,还要使用总线依赖项:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

4。 [POST] http://localhost:/ monitor?path = - 这应该将通知推送到客户端。或者,您可以使用github webhook在文件发生更改的位置自动发布。

您可以参考帖子here

答案 3 :(得分:0)

1。我建议使用这个git projecto:https://github.com/spring-cloud-incubator/spring-cloud-config-server-mongodb

2。首先,在完成所有更改后,如果您没有,请将@RefreshScope标记添加到其他控制器,如下所示:

@RefreshScope
@RestController
class MessageRestController {
   @Value("${message:Hello default}")
    private String message;

    @RequestMapping("/message")
    String getMessage() {
        return this.message;
    }

接下来,您需要将空HTTP POST发送到客户端的刷新端点,如下所示:

http://localhost:8080/refresh

注意:您可以在浏览器中使用RESTclient插件或POSTMAN来执行此操作。

最后在几秒http://localhost:8080/message

之后探测新消息

注意:此示例适用于客户端默认配置...