我想问两个关于 Spring Cloud Config 的问题。
1) 是否可以执行 Spring Cloud Config Server 来恢复基本属性 mongodb < / strong>而不是 git ?
2) Spring Cloud配置客户端安装程序在 Spring Cloud Config Server中更改所有权后自动更新< /强>
感谢!!!
答案 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)
@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
注意:此示例适用于客户端默认配置...