posted 7 years ago
Hi Afrim,
Spring Cloud offers much of the operational functionality you need for when you are building a microservices based application? (e.g. Config management, service discovery, intelligent routing, log aggregation and correlation)? You can use Spring Cloud Stream to do event-based microservices. Chapter 8 in the book actually demonstrates some simple event processing using Kafka and Spring Cloud Stream. Too me Kafka, RabbitMQ, etc... are really message backbones for publishing messages to services. I think Spring Cloud works really well when you are building Spring Applications in an internal data center or where you are going to be deploying your services to Docker containers that are not managed in something like a Kubernetes cluster. Also, if you plan on using the Pivotal Cloud (e.g. Cloud Foundry), many of the Spring Cloud services outlined in the book are available inside of cloud foundry.
Frankly, there is a lot of overlap between Spring Cloud and Kubernetes. If you are planning on running your Spring services in Kubernetes, you might want step back from Spring Cloud and take advantage of whats in Kubernetes. Kubernetes offers service discovery, logging, security, configuration management, etc... However, if you use something like Kubernetes things like Spring Cloud Stream and Spring Cloud/Hysterix are not part of the Kubernetes stack.
Thanks,
John
John Carnell - Senior Engineer, Genesys PureCloud Division
[email protected]
Author of Spring Microservices in Action