连接到 Consul 服务器 运行 openshift 到本地主机上的 consul 客户端 运行
Connect to Consul server running openshift to consul client running on localhost
当我在我的本地机器上 运行 consul 和 spring 启动具有以下属性的客户端 bootstrap.properties 时,我可以看到它连接、发现服务并能够从一个连接使用服务发现向其他人提供服务。
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 提供的路由上安装了 consul。我可以浏览到 consul UI 并看到 consul 服务已经自行注册。但是,当我尝试将本地主机上的客户端 运行ning 连接到 openshift 上的 consul 运行ning 时,出现错误。
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。它不应该使用端口号访问。我该怎么做?
It should not be accessing with port number.
由于路由是通过 OpenShift 提供的(您也可以通过网络访问它 UI),我认为它可以通过端口 80 访问。
如果是这种情况,您可以通过更改以下属性spring指定spring引导通过端口80访问consul
spring.cloud.consul.port=80
当我在我的本地机器上 运行 consul 和 spring 启动具有以下属性的客户端 bootstrap.properties 时,我可以看到它连接、发现服务并能够从一个连接使用服务发现向其他人提供服务。 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 提供的路由上安装了 consul。我可以浏览到 consul UI 并看到 consul 服务已经自行注册。但是,当我尝试将本地主机上的客户端 运行ning 连接到 openshift 上的 consul 运行ning 时,出现错误。
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。它不应该使用端口号访问。我该怎么做?
It should not be accessing with port number.
由于路由是通过 OpenShift 提供的(您也可以通过网络访问它 UI),我认为它可以通过端口 80 访问。
如果是这种情况,您可以通过更改以下属性spring指定spring引导通过端口80访问consul
spring.cloud.consul.port=80