Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spring netflix eureka, zuul vs Spring cloud data flow

I am new to the microservice world. Would like to know when to use Spring eureka, zuul vs spring data flow.

I am building a service which in turns will consume multiple granular services(aka micro service), aggregate all the data and returns aggregated data to the consumer. All the services will run in local intranet within company infrastructure. Also, I would like to load balance individual microservices.

What should be the choice of technology for microservices deployment?

I am using Spring 4.3, Spring boot, Rest, Spring data.

like image 306
Debopam Avatar asked Dec 18 '22 07:12

Debopam


1 Answers

I suggest this architecture:

  1. Netflix Eureka : for Service discovery
  2. Consul or Config Server : for saving configurations in environment base on 12 factors
  3. Zuul : for Intelligent and programmable routing
  4. Netflix Ribbon : for Client-Side Load Balancing
  5. Zipkin : for tracing
  6. Turbine : for metrics aggregation
  7. Netflix Feign : for Declarative REST API implementation
  8. Hysterix : for circuit breaker (one of the EIP patterns)
  9. RabbitMQ (Spring-AMQP) or Kafka (Spring-Kafka and Kafka Stream) for having asynchronous communication style
  10. Grafana + Prometheus + Prometheus-jmx-exporter for monitoring system
  11. Docker : for virtualization and container base architecure
  12. Docker Swarm or Kubernetes : for scalability, automation and Container Management

note : Prometheus is a time-series database (including monitoring features) you can also use InfluxDb or Graphite instead of it.

like image 142
Touraj Ebrahimi Avatar answered Dec 28 '22 08:12

Touraj Ebrahimi