2015-11-17 17 views
7

Sto vivendo un momento molto difficile con questo. Vogliamo utilizzare Spring Cloud Consul per la scoperta dei servizi e le mie università stanno spingendo l'idea di utilizzare Spring Cloud Console Config su Spring Cloud Config, che ho già implementato in precedenza per un progetto correlato. Il fatto è che Spring Cloud Config funziona alla grande e ha un conduit di controllo della versione pronto all'uso senza soluzione di continuità (git) per una gestione centralizzata dinamica delle proprietà. Per supportare questa stessa funzionalità in Spring Cloud Console Config sembra necessario re-inventare la ruota già infornata in Spring Cloud Config.Spring Console Console Config su Spring Cloud Config

Qualcuno ha esperienza con entrambi? Avrebbe senso usare entrambi? Vale a dire, avere Spring Cloud Config Client che punta a un server di configurazione Spring Cloud per le proprietà più "statiche" dell'ambiente (cose che variano tra dev, qa, stage, produzione sia statica) e Spring Cloud Console Config per proprietà dinamiche pure come il servizio scoperta?

Qualcuno, per favore, correggimi se sbaglio, ma dalla mia comprensione di ciò che avrò bisogno di fare per supportare il controllo dinamico delle versioni per le proprietà "statiche" usando Spring Cloud Console Config, mi servirebbe un qualche tipo di condotto tra dire git e la directory fisica "/ config" dell'istanza in esecuzione di ogni istanza dell'applicazione Console di Spring Cloud Console:/

+0

Hai visto https://github.com/Cimpress-MCP/git2consul? – spencergibb

+0

Ho ma questo è un esempio di aggiunta di un conduit esterno. Comunque, Spencer, se lo stai raccomandando, sono incuriosito e prenderò in considerazione un aspetto più serio. – Starlton

+0

Ho dato un'occhiata più difficile a git2consul. Anche se si tratta di una configurazione poller, a differenza del server di configurazione spring cloud che tenta solo di eseguire nuove modifiche da git quando un client effettua una richiesta, non è una cosa grossa ... Detto questo, il problema che sto avendo è che voglio distribuire a console un insieme di file di proprietà impegnati a git; tuttavia, se lo faccio, SCCC non si espande in singole proprietà come avrei ipotizzato. Sto indovinando che l'idea per SCCC è che ogni chiave/valore mappa una proprietà che significa che devo convertire il file .properties in chiave/valori individuali? – Starlton

risposta

2

tl; dr: Uso la config del cloud di primavera e il console del cloud di primavera ma non la console di controllo di primavera.

Non ho usato la configurazione del console di primavera in particolare poiché non sto utilizzando la console di configurazione, ma sto utilizzando un server di configurazione spring cloud che si registra in console e ho altri microservizi che accedono al server di configurazione spring cloud tramite console per il servizio scoperta. Sia il server che il client utilizzano il cloud cloud console per registrarsi e scoprire il server di configurazione. E il server di configurazione e i client di configurazione utilizzano entrambi la configurazione di Spring Cloud.

Qui è la mia messa a punto:

Primavera cloud Config Server

Dipendenze:

org.springframework.cloud:spring-cloud-config-server 
org.springframework.cloud:spring-cloud-starter-consul-discovery 
org.springframework.boot:spring-boot-starter-actuator 

bootstrap.properties:

spring.application.name=config-server 
spring.cloud.consul.host=CONSUL_HOSTNAME 
spring.cloud.consul.port=CONSUL_PORT 

application.properties:

spring.cloud.config.server.git.uri=GIT_REPO_URL 
spring.cloud.config.server.git.username=GIT_REPO_USERNAME 
spring.cloud.config.server.git.password=GIT_REPO_PASSWORD 

Application.java:

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

Primavera cloud applicazioni client

Dipendenze:

org.springframework.cloud:spring-cloud-starter-config 
org.springframework.cloud:spring-cloud-starter-consul-discovery 
org.springframework.boot:spring-boot-starter-web 
org.springframework.boot:spring-boot-starter-actuator 

bootstrap.properties:

spring.application.name=client-app-name 
spring.cloud.consul.host=CONSUL_HOSTNAME 
spring.cloud.consul.port=CONSUL_PORT 
spring.cloud.config.discovery.enabled=true 
spring.cloud.config.discovery.serviceId=config-server 

Applicazione.java:

@SpringBootApplication 
@EnableDiscoveryClient 
public class Application 
{ 
    public static void main(String[] args) 
    { 
     SpringApplication.run(Application.class); 
    } 
} 
+0

Grazie Nicolas, non in grado di controllare questo attualmente, ma Spencer ha aggiunto alcune eccellenti nuove funzionalità in SCCC negli ultimi anni per includere il supporto per [file] (https://github.com/spring-cloud/spring-cloud -consul/commit/373072182a10b85a1cc23f07b770738330f55c69) e integrazione con git2consul. Probabilmente saremmo favorevoli all'approccio git2consul dato che ora utilizziamo i file di configurazione hocon typesafe per la nostra configurazione distribuita per il progetto che ho inizialmente avviato per conto di questa domanda. – Starlton

1

Per quanto ho capito, in caso di gestione della configurazione, in confronto con la molla nuvola di configurazione, il console (con git2Consul) fornisce la soluzione di scambio di dati tra data center multipli e il failover dei nodi.

Per il singolo centro dati, è sufficiente la configurazione della nuvola di molla (con una semplice soluzione di failover, ad es. LVS, master/slave, meccanismo rsync ecc.).

Per l'individuazione del servizio, Consul ha un meccanismo di controllo dello stato e può abilitare il cambio automatico dei percorsi. Nella configurazione del cloud di primavera, è necessario ulteriore lavoro per implementare la scoperta semiautomatica.

Problemi correlati