Load Balancing
Why load balancing?
Load balancing is a technique used to distribute workloads evenly across multiple computing resources, such as servers, network links, or other devices, in order to optimize resource utilization, minimize response time, and maximize throughput. This technique helps ensure that no single resource is overwhelmed, thus maintaining a high level of performance and reliability.
A service performing load balancing is referred as a load balancer, which often serves as the entrypoint of a group of resource. Some benefits of introducing load balancing into the architecture includes:
- Improve performance, such as caching, connection reuse, protocal optimization, etc.
- Enable high availability, redundancy and scalability
- Network optimization, such as geographic distribution
- Provide security protection such as rate limiting to prevent DDos attacks
- Cost saving through caching and optimizing resource optimization
Load Balancing Types
Load balancing is simply a technique of distributing requests with a given criteria, and it can be further categorized base on where the rules are implemented. For instance,
- Application load balancing
- Network load balancing
- DNS load balancing
- Hardware load balancing
- Global Server Load Balancing