2016-08-26 163 views
0

我有在AWS中运行的弹簧web应用程序(不是弹簧启动)。我正在尝试创建集中式配置服务器。如何在更改属性后刷新spring-cloud-client?按照教程弹簧云配置客户端没有尤里卡,丝带和弹簧启动

器终端通过发送一个空HTTP POST到客户端的刷新端点,http://localhost:8080/refresh,并确认它的工作通过审查http://localhost:8080/message端点。

但是我的aws Ec2实例在loadbalancer后面,所以我无法调用客户端url。我不太了解netflix Eureka和Ribbon,但似乎在客户端添加了另一个级别的负载平衡器。我不喜欢这种方法。只是为了改变财产,我不想让现有的项目变得不必要的复杂。有没有其他方法?或者我误解了尤里卡/丝带的用法?

我看了看spring-cloud-config-client-without-spring-boot,spring-cloud-config-client-without-auto-configuration他们都没有答案。第一个线程在2015年回答。想知道有没有更新?

+0

尤里卡和功能区与配置客户端无关。有一个HTTP API来配置服务器,但它仍然是你必须在非引导客户端上实现的东西。 – spencergibb

+0

@spencergibb你能解释一下关于Http Api吗?或提供参考链接?客户端如何刷新属性更改? – Chandru

回答

1

从配置服务器获取配置属性。你可以做一个http请求。例如:

从文档,我们可以看到:

/{application}/{profile}[/{label}] 
/{application}-{profile}.yml <- example 
/{label}/{application}-{profile}.yml 
/{application}-{profile}.properties 
/{label}/{application}-{profile}.properties 

所以,如果你会做一个请求http://localhost:8080/applicationName-activeProfile.yml您将收到.yml格式的属性与该名称和活动配置文件的应用程序。 Spring启动配置客户端会自动提供这些值,但您必须手动提供这些值。

你不需要Eureka/Ribbon来工作,它是一个独立的组件。 更多信息:http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_spring_cloud_config

也许你甚至可以使用spring-cloud-config,但我不确定没有spring-boot需要什么额外的配置。 https://cloud.spring.io/spring-cloud-config/

+0

@spencergibb感谢您的解释。如果春季启动自动刷新属性发生活动请求会发生什么? – Chandru

+0

主动请求什么? – spencergibb

+0

@spencergibb如果我有三个实例位于负载均衡器后面,并且负载均衡器是已经公开的URL,如果我在客户端上调用refresh api,它将在三个实例之一上触发它。不是全部三个。我应该怎么做才能确保我可以刷新每个实例。 – Anunay