连接到运行openshift的Consul服务器以运行在localhost上的consul客户端

时间:2019-05-30 21:17:26

标签: spring-boot openshift consul

当我在bootstrap.properties中具有以下属性的本地计算机和spring boot客户端上运行consul时,我可以看到它连接,发现服务并能够使用服务发现从一个服务连接到另一个服务。 Bootstrap.properties:

spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.instance-id=consul-service2
spring.application.name=consul-service2
server.port=8083

但是现在,我在openshift提供的路由上安装了领事。我可以浏览到领事UI,并看到领事服务已注册。但是当我尝试将在localhost上运行的客户端连接到在openshift上运行的领事时,我得到了错误。

com.ecwid.consul.transport.TransportException: org.apache.http.conn.ConnectTimeoutException: Connect to consul-uservices-template.f-az.uk.paas.intranet.db.com:8500 [consul-uservices-template.hju-azh.uk.paas.intranet.sdf.com/10.248.36.85] failed: connect timed out
        at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:77) ~[consul-api-1.4.1.jar:na]
        at com.ecwid.consul.transport.AbstractHttpTransport.makePutRequest(AbstractHttpTransport.java:41) ~[consul-api-1.4.1.jar:na]
        at com.ecwid.consul.v1.ConsulRawClient.makePutRequest(ConsulRawClient.java:135) ~[consul-api-1.4.1.jar:na]
        at com.ecwid.consul.v1.agent.AgentConsulClient.agentServiceRegister(AgentConsulClient.java:273) ~[consul-api-1.4.1.jar:na]
        at com.ecwid.consul.v1.ConsulClient.agentServiceRegister(ConsulClient.java:309) ~[consul-api-1.4.1.jar:na]

我的bootstrap.properties:

spring.cloud.consul.host=consul-uservices-template.hju-azh.uk.paas.intranet.sdf.com
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.instance-id consul-service2
spring.application.name=consul-service2
server.port=8083

我正在做的是提供路由路径作为主机,在这里我错了吗?我可以看到它尝试连接到consul-uservices-template.hju-azh.uk.paas.intranet.sdf.com:8500并超时。当我尝试点击此URL时,即使在浏览器上也得到404。它不应使用端口号进行访问。我该怎么办?

1 个答案:

答案 0 :(得分:1)

  

它不应使用端口号进行访问。

由于该路由是通过OpenShift提供的(您也可以通过Web UI访问该路由),因此我认为可以通过端口80访问该路由。

在这种情况下,您可以通过更改以下属性来指定Spring Boot通过端口80访问领事

spring.cloud.consul.port=80