Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why using Eureka?

I was setting up microservices based on Netflix Eureka and experimenting on top of spring-cloud and after weeks of research and development the question rose!

Why do I need the Eureka and spring-cloud?

Why not developing your independent containers and deploy them on Kubernetes as pods and maintain everything from there?

You can support load balancing, service registery, monitoring, containerization, etc. from Kubernetes too.

Here are some points that I can think of:

  • developer friendly
  • lower server costs for the complete stack
  • less OPS dependent
  • more resources on developer communities and tutorials
  • gradual learning curve
like image 224
Mr. Crowley Avatar asked Jun 01 '18 16:06

Mr. Crowley


People also ask

Why is Eureka used?

Eureka (Ancient Greek: εὕρηκα) is an interjection used to celebrate a discovery or invention. It is a transliteration of an exclamation attributed to Ancient Greek mathematician and inventor Archimedes.

Why Eureka is used in microservices?

The Eureka server is nothing but an implementation of service discovery pattern, where microservices can register themselves so others can discover them. This server holds information about the client service applications.

What are some key advantages of Netflix Eureka?

With Netflix Eureka, each client can simultaneously act as a server to replicate its status to a connected peer. In other words, a client retrieves a list of all connected peers in a service registry, and makes all further requests to other services through a load-balancing algorithm.

What is the difference between API Gateway and Eureka server?

Zuul acts as the API gateway, providing a uniform, single point of entry into the set of microservices, while Eureka is essentially used as a “meta data” transport. Each client application instance (read microservice) registers its instance information (location, port, etc.)


2 Answers

I conclude and the top highlights for the reason why using Eureka and/or Kubernetes can be listed as:

  • Java only
  • developer friendly
  • lower server costs for the complete stack
  • less OPS dependent
  • more resources on developer communities and tutorials
  • gradual learning curve

So,

If you need some of your microservices in an other language or you can rely on your developers knowledge on Kubernetes are not afraid to spend a bit more time and money investing in your tech stack to have a wider and less dependent system then Kubernetes is the way to go.

On the other hand

If you need a fast development well integrated with spring-boot stack with easy to use Java annotations without large involvement of DevOps then and less resource to train your developers then go for Eureka and spring-cloud stack.

for more details and comparison charts and features list please refer to this article.

like image 104
Mr. Crowley Avatar answered Sep 28 '22 06:09

Mr. Crowley


On Kubernetes you don't need to, you could use those features from the Kubernetes platform.

If you want to integrate closer with spring cloud you can have a look at: https://github.com/spring-cloud-incubator/spring-cloud-kubernetes

Most of the requested features can be provided by Kubernetes Services. These get exposed as environment variables to the pods or you could use Kube DNS to find the needed services.

like image 28
Jeff Avatar answered Sep 28 '22 06:09

Jeff