Before you start designing complex systems, there are a few basic terminologies one must know. Understanding these are critical to be able to design systems such as Netflix, Facebook or Amazon used by millions of users.
DNS - Domain Name System - Maps a website address to an IP address of the server where the web page is hosted
IP Address - It is a unique network address for your computer. Every device now has its own identifier which is the IP address
The following video from Khan Academy explains it wonderfully
A load balancer is a networking device or software designed to distribute incoming network traffic across multiple servers, ensuring optimal resource utilization, reduced latency, and maintained high availability. It plays a crucial role in scaling applications and efficiently managing server workloads, particularly in situations where there is a sudden surge in traffic or uneven distribution of requests among servers.
Load balancers employ various algorithms to determine the distribution of incoming traffic. Some common algorithms include:
Round Robin: Requests are sequentially and evenly distributed across all available servers in a cyclical manner.
Least Connections: The load balancer assigns requests to the server with the fewest active connections, giving priority to less-busy servers.
IP Hash: The client's IP address is hashed, and the resulting value is used to determine which server the request should be directed to. This method ensures that a specific client's requests are consistently routed to the same server, helping maintain session persistence.