Load Balancer Vs API Gateway
In the high-level overview of the system design, both these blocks look the same. But they are not. Let me tell you.
Imagine you organized the big party and had the different food counters. Assume Pizza counter is one of them. At t0, you have one pizza counter in the food arena. Over the time more audience start reaching the party, and you added the one more pizza counter to the food arena. During the peek time more people started eating pizza now you pizza counter owner can't control the crowd and keeps one person near the counters and redirects to the people to the counter having the less number of people.
Now lets see the balcony view, pizza owner what he did was he identified the increase in the load increased the number of orders and number of people staying in the queue. Now he assigned one balancer to distribute the load based on the queue size in the respective counter.
Different Techniques with respect to the pizza counter:
Round Robin - The balancer sends each new guest to the next counter in a cyclic order, without considering the current queue length.
Analogy with Pizza counter: If there are three counters, the first guest goes to Counter 1, the second to Counter 2, the third to Counter 3, and the fourth back to Counter 1.
Least Connections -The balancer sends new guests to the counter with the fewest people currently in the queue.
Analogy with Pizza counter: If Counter 1 has 3 people, Counter 2 has 2, and Counter 3 has 1, the next guest will be directed to Counter 3.
Least Response Time- The balancer sends guests to the counter that is currently serving people the fastest, indicating it can handle more load quickly.
Analogy with Pizza counter: If Counter 1 typically serves a pizza in 2 minutes, Counter 2 in 3 minutes, and Counter 3 in 1 minute, the balancer will prioritize Counter 3 for new guests.
IP Hash - Each guest has a unique identifier, and the balancer always directs the same guest to the same counter based on this identifier.
Analogy with Pizza counter: If a guest's identifier (like a name tag) hashes to Counter 2, they will always be directed to Counter 2 whenever they return for more pizza.
Weighted Round Robin- Some counters are more capable (larger staff or faster ovens) and can handle more guests, so the balancer sends more guests to these counters based on their capacity.
Analogy with Pizza counter: If Counter 1 can handle twice as many orders as Counter 2, the balancer will send two guests to Counter 1 for every one guest sent to Counter 2.
Weighted Least Connections - The balancer sends guests to the counter with the fewest people, but also considers the capacity of each counter.
Analogy with Pizza counter: If Counter 1 (higher capacity) has 5 people, Counter 2 (lower capacity) has 3 people, and Counter 3 (medium capacity) has 2 people, the balancer may still direct guests to Counter 3 based on its capacity to handle more load efficiently
Key features:
Traffic Distribution: Balances traffic across multiple servers.
Scalability: Helps scale horizontally by adding more servers.
High Availability: Increases availability by routing traffic to healthy servers.
Health Checks: Monitors the health of servers and directs traffic to healthy ones.
Operates at Transport layer and application layer ( Layer 4 and Layer 7 ) of the OSI Model
Now let's look into the api gateway.
Imagine you want to order the items required for a big party like pizza, ballons, cakes. Instead of you calling all the stores for the items. Find one person who can do all the stuff for you and they will handle everything for you. That special guy is like the api gateway. An API Gateway is a helper that takes all the requests from people (like ordering party supplies) and sends them to the right places.
Key Features:
Request Routing: Routes API requests to appropriate microservices.
Protocol Translation: Translates protocols (e.g., HTTP to WebSocket).
Authentication and Authorization: Enforces security policies for incoming requests.
Rate Limiting and Throttling: Controls the rate of requests to prevent abuse.
Caching: Provides caching capabilities to improve performance.
Analytics and Monitoring: Offers detailed logging and monitoring of API usage.
Operates primarily at Layer 7 (Application) of the OSI model.
Let me add all the differences in the table for you,
Primary Function
Distributes traffic to multiple servers
Manages and routes API requests
Layer of Operation
Layer 4 (Transport) and Layer 7 (Application)
Layer 7 (Application)
Traffic Distribution
Yes
No
Request Routing
Basic routing
Advanced routing based on API endpoints
Protocol Translation
No
Yes
Authentication & Authorization
No
Yes
Rate Limiting & Throttling
No
Yes
Caching
Limited
Yes
Health Checks
Yes
No
SSL Termination
Yes
Yes
Session Persistence
Yes
No
Scalability
Horizontal scaling by adding more servers
Facilitates scaling by managing API traffic
High Availability
Yes
Yes
Analytics & Monitoring
Basic (server health, traffic distribution)
Detailed (API usage, performance metrics)
Complexity
Generally simpler
More complex
Use Case Context
General traffic distribution for web servers, databases, etc.
Specifically for microservices architectures
Last updated