Сервер конфигурации не обнаруживается при первой настройке консула

Я использую первую настройку консула. Для этого я использую образ докера консула с портом 8500, сопоставленным с 8500, поэтому я могу успешно использовать его при локальной настройке. Я могу получить доступ к консулу по адресу http://localhost:8500 .

У меня есть следующая конфигурация для сервера конфигурации — pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.RC1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Application.yml

server:
   port: 8888
spring:
   cloud:
     config:
       server:
         git:
           uri: https://github.com/xxxxxx/spring-config-repo.git
consul:
  host: consul
  port: 8500
  enabled: true
  discovery:
    enabled: true
    register: true
    service-name: configservice

bootstrap.yml

spring:
   application:
     name: config-server

ConfigServerApplication.java

@EnableConfigServer
@EnableDiscoveryClient
@SpringBootApplication
public class ConfigServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServiceApplication.class, args);
    }
}

Когда я запускаю эту банку, она проходит успешно. Я вижу сервер конфигурации в пользовательском интерфейсе консула. Ниже приведены сведения о сервере конфигурации, как видно из консульства.

Request - http://localhost:8500/v1/catalog/services
Response - 
{
"configservice": [],
"consul": []
}

Request - http://localhost:8500/v1/catalog/service/configservice
Response - 
[
 {
    "ID": "f6ac953c-07b9-4097-974e-3ea9cd39bec2",
    "Node": "a0954c644062",
    "Address": "127.0.0.1",
    "TaggedAddresses": {
        "lan": "127.0.0.1",
        "wan": "127.0.0.1"
    },
    "NodeMeta": {},
    "ServiceID": "config-server-8888",
    "ServiceName": "configservice",
    "ServiceTags": [],
    "ServiceAddress": "10.0.0.158",
    "ServicePort": 8888,
    "ServiceEnableTagOverride": false,
    "CreateIndex": 15,
    "ModifyIndex": 15
 }
]

Я также могу получить доступ к серверу конфигурации, используя этот uri-

http://localhost:8888/configclient/default

У меня есть клиентское приложение, которое использует свойства с сервера конфигурации. Насколько я понимаю, когда я запускаю этот jar, он свяжется с консулом и получит оттуда информацию о сервере конфигурации и заполнит свойства, извлекая их из заданного git uri.

Ниже приведены сведения о клиенте — pom.xml.

    <dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-all</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.RC1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

bootstrap.yml

spring:
   application:
      name: myservice
cloud:
  config:
    fail-fast: true
    retry:
      max-attempts: 20
      initial-interval: 3000
   enabled: true
   discovery:
     enabled: true
     service-id: configserver
consul:
  host: localhost
  port: 8500
  discovery:
    enabled: true
    register: true
    service-name: myservice

application.yml

server:
   port: 8081

MyServiceApplication.java

@EnableDiscoveryClient
@SpringBootApplication
public class MyServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApplePaymentServiceApplication.class,    args);
    }
}

Но во время этого запуска этого jar-файла он не может найти сервер конфигурации и вместо этого возвращается к uri по умолчанию. Это соответствующий раздел журнала запуска

2017-03-28 00:40:20.407  WARN 99123 --- [           main]  lientConfigServiceBootstrapConfiguration : No instances found of  configserver (configserver)


2017-03-28 00:40:20.551  INFO 99123 --- [           main]  b.c.PropertySourceBootstrapConfiguration : Located property source:   CompositePropertySource [name='consul', propertySources= . [ConsulPropertySource [name='config/myservice/'],   ConsulPropertySource [name='config/application/']]]
2017-03-28 00:40:20.587  INFO 99123 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at: http://localhost:8888
2017-03-28 00:40:21.831  INFO 99123 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=myservice, profiles=[default], label=null, version=null, state=null
2017-03-28 00:40:21.832  INFO 99123 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource [name='configService', propertySources=[MapPropertySource [name='https://github.com/xxxxx/spring-config-repo.git/myservice.yml'], MapPropertySource [name='https://github.com/xxxxx/spring-config-repo.git/application.yml']]]
2017-03-28 00:40:21.841  INFO 99123 --- [           main] c.h.MyServiceApplication       : No active profile set, falling back to default profiles: default 

Я возился с множеством разных вариантов из разных примеров, таких как первая начальная загрузка консула с Spring облачная конфигурация

Может ли кто-нибудь указать на то, что мне может не хватать? Любые указатели на рабочий пример с доступом к соответствующим файлам приложения/загрузки для консула, сервера конфигурации и клиента были бы очень полезны.

PS: Прошу прощения за информационный перегруз в вопросе. Некоторые из них могут быть неактуальны, но я хотел дать как можно больше информации, чтобы кто-то мог заметить то, с чем они сталкивались раньше.


person Somnath    schedule 28.03.2017    source источник


Ответы (1)


Вы пытаетесь найти configserver, но он зарегистрирован как configservice.

person spencergibb    schedule 28.03.2017
comment
Спасибо, Спенсер. Я думаю, что немного повозился, и кое-как остался с этим несоответствием имен и даже не заметил этого. Я работаю нормально сейчас. - person Somnath; 28.03.2017
comment
Я думаю, что у меня есть. Я думаю, что переключение галочки на зеленый делает это. Я сделал это первым делом после того, как решение сработало. :) Что еще я должен сделать, кроме этого? - person Somnath; 29.03.2017
comment
Я понятия не имею, что означает переключение галочки на зеленый. Какой флажок и где? - person spencergibb; 29.03.2017