POC per vedere all'opera i componenti fondamentali di Spring Cloud. Il progetto ha puro scopo dimostrativo e di studio, non fa praticamente niente se non esporre 2 endpoint, una delle quali chiama l'altra.
Questo progetto fa riferimento al post "Microservizi in Java con Spring Boot e Spring Cloud"
Ogni modulo Maven è un microservizio. Possiamo dividerli in due macrogruppi:
- infrastruttura
- config-server: server di configurazione "Spring Cloud Config". Le configurazioni risiedono in un altro repository
- eureka-server: service registry ("Eureka Server")
- zipkin-server: server di analisi dei tempi medi delle chiamate tra servizi ("Zipkin")
- applicativi
- customer-services: servizi inerenti ai clienti (ha solo un endpoint di prova)
- order-services: servizi inerenti agli ordini dei clienti (ha solo un endpoint di prova)
Data la natura dei servizi, quelli di "infrastruttura" dovrebbero essere avviati prima di quelli applicativi. In particolare, è vero esclusivamente per il config-server perché i servizi applicativi sono configurati per fallire subito se non lo trovano.
Per sperimentare ELK con Spring Cloud, il progetto ha 4 branch:
elk-logstash-with-grok-via-fs
: Logstash legge i file delle applicazioni direttamente da file system e li invia a ElasticSearchelk-logstash-with-grok-via-filebeat
: FileBeat legge i file delle applicazioni e li invia a Logstash con il suo protocollo.elk-via-filebeat
: l'applicazione scrive i log in JSON e FileBeat li legge e li invia a Logstash (che non fa altro che tipizzare alcuni campi)elk-via-logstash-appender
: appender Log4j che scrive direttamente su Logstash