Когда я запускаю консул на своем локальном компьютере и загрузочный клиент 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, предоставивший маршрут к нему. Я могу перейти к пользовательскому интерфейсу консула и увидеть, что служба консула зарегистрировалась. Но когда я пытаюсь подключить клиент, работающий на локальном хосте, к консулу, работающему на 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 и время ожидания истекает. Я получаю 404 даже в браузере, когда пытаюсь перейти по этому URL-адресу. Он не должен обращаться с номером порта. Как я могу это сделать ?




It should not be accessing with port number.
Поскольку маршрут предоставляется через OpenShift (и вы также можете получить к нему доступ через веб-интерфейс), я предполагаю, что он доступен через порт 80.
Если это так, вы можете указать весеннюю загрузку для доступа к консулу через порт 80, изменив следующие свойства
spring.cloud.consul.port=80