0

J'utilise une première configuration de consul. Pour cela, j'utilise une image de docker de consul avec le port 8500 mappé à 8500 ainsi je peux l'employer avec succès sur l'installation locale. Je peux accéder au consul au http://localhost:8500.Le serveur de configuration ne se découvre pas lors de la première installation

je la configuration suivante pour le serveur de configuration - 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); 
    } 
} 

Quand je lance ce pot, il est réussi. Je peux voir le serveur de configuration en consul ui. Après les détails du serveur de configuration vu de consul-

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 
} 
] 

Je peux aussi accéder au serveur de configuration en utilisant ce uri-

http://localhost:8888/configclient/default 

Je application cliente qui utilise les propriétés du serveur de configuration .Mon arrangement est que quand j'exécuterai ce pot, il contactera consul et obtiendra l'information de serveur de config de là et peuplera les propriétés en le récupérant de l'uri donné de git.

Après les détails sur le client - 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); 
    } 
} 

Mais au cours de cette mise en service de ce pot, ce ne est pas en mesure de trouver le serveur de configuration et tombe au lieu de retour sur la uri par défaut. Ceci est la section du journal de démarrage correspondant

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 

Je bricolé avec beaucoup d'options différentes de divers exemples tels que consul first bootstrap with spring cloud config

peut pointer quelqu'un à ce que je pourrais être absent? Tous les pointeurs vers un exemple de travail avec accès aux fichiers application/bootstrap appropriés pour consul, configserver et client seraient très utiles.PS: Je m'excuse pour la surcharge d'information dans la question. Certains d'entre eux pourraient ne pas être pertinents mais je voulais donner autant d'informations que possible afin que quelqu'un puisse repérer quelque chose qu'ils ont déjà rencontré auparavant.

Répondre

1

Vous essayez de rechercher configserver, mais il est enregistré comme configservice.

+0

Merci spencer. Je pense que j'ai fait un peu de bricolage et que certains ont laissé avec cette différence des noms et ne l'ont même pas remarqué. Je fonctionne bien maintenant. – Somnath

+1

Que diriez-vous d'accepter la réponse – spencergibb

+0

Je pense que j'ai. Je pense que cogner la coche au vert le fait.je l'ai fait la première chose après que la solution a fonctionné.:) Autre chose que je dois faire en dehors de cela? – Somnath