recruiter小姐姐把面试范围画了个重点,于是我来抱个佛脚。学习一下load balancer把流量分给各个server的原理和方法。
什么是Load balancer
efficiently distributing incoming network traffic across a group of backend servers,把流量高效地分配给后端server。
基本职能:
- 保证没有server overworked
- 万一某个server down,分给其他的
- 一个新的server添加进来,开始向他分流量
Load balancer分类
layer 4 网络/传输层 | layer 7 应用层 | |
---|---|---|
简介 | 通过虚拟IP+端口接收请求, 然后再分配到真实的服务器 |
通过虚拟的URL或主机名接收请求, 然后再分配到真实的服务器 |
协议 | IP, TCP, FTP, UDP | HTTP |
实现方法 | 1)DNS服务器 2)硬件SDN 3)软件下面几个算法 |
sticky sessions: load balancer sets a cookie all of the requests from that session are directed to the same physical server |
两种类型的load balancers都接收requests, 并根据一个算法