涡轮流双端口绑定问题

时间:2018-01-10 17:28:15

标签: spring-boot spring-cloud spring-cloud-netflix pivotal-cloud-foundry turbine

我使用Spring Boot 1.5.4和Spring Cloud Dalston SR4在Cloud Foundry上建立Turbine服务器并聚合我的应用程序Hystrix流。此外,我想为Turbine服务器添加Spring Boot Actuator监控和管理功能。我知道有很多关于如何在本地环境中执行此操作的文档,并且我确实在本地工作。但是,在部署到Cloud Foundry时,我不能在Url绑定中使用端口号,这是另一回事。

问题是Turbine流由一个端口上的RxNetty服务器提供,而Actuator端点由另一个端口上的Tomcat提供。在Cloud Foundry中,我只能将我的Url绑定到RxNetty端点或Tomcat端点,而不是两者。

没有management.port和turbine.stream.port的组合允许我从一个主机绑定访问涡轮机流和执行器端点。以下是我期望能够做到的一个例子: -

https://myapp.mydomain.com/info(报告执行器信息详情) https://myapp.mydomain.com/turbine.stream(以汇流涡轮机指标)

注意:这些网址中没有端口号。

2 个答案:

答案 0 :(得分:0)

Cloud Foundry上的应用程序请求通过Cloud Foundry Go路由器,该路由器使用http主机头将流量定向到运行应用程序的所有容器实例。基于http的gorouter expecter只有一个端口可由应用程序打开以转发http流量。但是,gorouter还支持tcp路由,这应该允许您打开多个端口。有关云代工厂的tcp与http路由的解释,请参阅docs

如果您在Pivotal Cloud Foundry上运行,您可以使用Spring Cloud Serviecs为PCF提供的断路器仪表板,然后您不需要设置涡轮机流。 Spring Cloud Services仪表板使用RabbitMQ而不是SSE事件,请参阅SCS docs了解详细信息

答案 1 :(得分:0)

现在回到正题。正如spencergibb指出的那样,迁移到springboot 2.0和云Finchley可以正常工作。