Netflix Shares Cloud Load Balancing And Failover Tool: Eureka!

Netflix Technology Blog
7 min readadvanced
--
View Original

Overview

Netflix has introduced Eureka, a REST-based service registry designed for mid-tier load balancing and failover in the AWS cloud. It plays a crucial role in the Netflix infrastructure by managing service discovery and enhancing resiliency through client-side load balancing.

What You'll Learn

1

How to implement Eureka for mid-tier load balancing in AWS

2

Why client-side load balancing enhances resiliency in cloud environments

3

When to choose Eureka over AWS Elastic Load Balancer

Prerequisites & Requirements

  • Understanding of service discovery and load balancing concepts
  • Familiarity with AWS cloud services(optional)

Key Questions Answered

What is Eureka and how does it function?
Eureka is a REST-based service registry used in the AWS cloud for locating services, facilitating load balancing and failover for mid-tier servers. It consists of a Eureka Server for service registration and a Eureka Client that simplifies interactions, including a built-in load balancer for basic round-robin distribution.
How does Eureka differ from AWS Elastic Load Balancer?
Eureka is specifically designed for mid-tier load balancing, unlike AWS Elastic Load Balancer, which is for edge services. Eureka allows for direct communication between client instances and servers, enhancing resiliency and reducing latency, while AWS ELB operates at the proxy level and can expose services to the outside world.
What are the use cases for Eureka at Netflix?
At Netflix, Eureka is utilized for mid-tier load balancing, aiding in cloud deployment management with Asgard, enabling fast version rollbacks, managing rolling pushes, and maintaining metadata for services. It also supports Cassandra deployments and Memcached-based services.
How does Eureka ensure resilience in service discovery?
Eureka clients cache registry information, allowing them to function even if all Eureka servers go down. This design prevents large-scale outages during network partitions and ensures that services can still communicate effectively without relying solely on the registry.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implement Eureka in your AWS architecture to enhance service discovery and load balancing for mid-tier applications.
Using Eureka allows for dynamic registration and deregistration of services, which is essential in cloud environments where instances frequently change.
2
Consider using client-side load balancing with Eureka to improve application resiliency and reduce latency.
By caching service registry information, your application can maintain functionality even during outages of the load balancer, which is critical for high-availability systems.
3
Evaluate your need for sticky sessions when designing your load balancing strategy.
Eureka's design favors stateless services, which aligns well with AWS's autoscaling capabilities, making it suitable for many modern cloud applications.

Common Pitfalls

1
Assuming that Eureka can replace AWS Elastic Load Balancer for all load balancing needs.
Eureka is designed for mid-tier services and does not provide the same features as AWS ELB, such as sticky sessions or external traffic management, which can lead to misconfigurations if not understood.
2
Neglecting to account for the need for service registration and heartbeats.
Without proper registration and lease renewal mechanisms, services may be incorrectly marked as unavailable, leading to service outages or degraded performance.

Related Concepts

Service Discovery
Load Balancing Strategies
AWS Cloud Architecture
Microservices Design Patterns