2015-05-04 129 views
1

我想問兩個關於Spring Cloud Config的問題。配置Spring Cloud配置

1)是否有可能做春雲配置服務器的實現恢復基本的MongoDB的屬性,而不是混帳

2)春雲配置客戶端安裝時,會自動在春雲配置服務器在所有權變更更新?

謝謝!

回答

1
  1. 是的,這是可能的,拉的請求,歡迎
  2. 沒有推,但你可以使用Spring的@Scheduled調用 RefreshEndpoint.refresh()的間隔的基礎上。
+0

的答覆首先感謝,說到我的另外兩個疑點。 *** 1)***我如何取消在創建bean ** ConfigServerConfiguration $ GitRepositoryConfiguration **時創建的錯誤,因爲我不會使用它來取消。 *** 2)***我如何在我的mongodb案例中創建一個自定義的** EnvironmentRepository **。 –

+0

查看這兩個鏈接尋求幫助:https://github.com/spring-cloud/spring-cloud-config/blob/master/spring-cloud-config-server/src/main/java/org/springframework/cloud/ config/server/ConfigServerConfiguration.java#L69-L79和https://github.com/spring-cloud/spring-cloud-config/blob/master/spring-cloud-config-server/src/main/java/org/ springframework/cloud/config/server/SvnKitEnvironmentRepository.java基本上,你可以使用不同的配置文件運行配置服務器,創建一個'EnvironmentRepository'的bean,就像其他人爲svn所做的那樣。 – spencergibb

1

不確定約1. 對於2)你有春天雲總線,當你在配置服務器進行更改時,可以自動向所有客戶端提供推送通知。 http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html

以下需要: 1的RabbitMQ/Redis的本地 2.運行添加在配置服務器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.使用除了彈簧配置客戶端依賴公交車的依賴,你可能已經擁有:

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

4 POST] http://localhost:?/監控路徑= - 這應該推送通知給客戶。或者,您可以使用github webhook自動發佈文件發生更改的位置。

你可以參考後here

2

春雲配置服務器MongoDB是現在Github可用。

要啓動並運行所有您需要做的就是添加如下的maven配置,將@EnableMongoConfigServer添加到您的Spring Boot應用程序配置中,並配置所需的spring.data.mongodb.*屬性。通過http://localhost:8080/master/appname-prod.properties

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

和訪問他們獲得這樣的迴應:

<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的這樣

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

UPDATE 我們有升級爲spring-cloud-config-server-mongodb以使用spring-boot 1.5.7快照。

0

我建議這個混帳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

注:這個例子是使用默認配置客戶端...