我们一般的网站架构图
涉及的知识点:
1.提供虚拟ip地址和负载均衡功能的LVS集群
1.1 LVS的两种主要模式NAT和DR模式
2.全链路监控组件我们一般选择美团的Cat或者zipkin的skywalking
3.限流策略:
3.1 漏桶策略
优点:消费速度以恒定的速度进行,水满则溢出
缺点: 不能应付突发的流量
3.2 令牌策略
优点:授权令牌以恒定的速度生成并放置到桶中,桶满则不继续生成,然而不限制令牌的取出速度,可以短时间内取出桶内的所有令牌,可以应付突发的流量
4.过载保护
4.1 客户端在调用服务超时时,为了避免加重服务器的负担,重试时间最好是按指数级递增的方式重试
4.2 服务端当发现处理请求包时,请求包已经在队列缓存中等待了过长的时间,超过了客户端的超时设置时,需要直接过滤掉不处理,当然服务端也可以根据当前cpu内存等使用情况来决定新来的请求能否放入到队列中等待处理
5.常见负载均衡算法
5.1 简单轮询+加权轮询:直接按照顺序访问各个后端的节点,缺点是需要记住当前已经轮询到的服务器id
5.2 随机选择+加权随机选择: 通过随机的方式来确定选择那个后端服务器,非常简单直接
5.3 Nginx的源Ip Hash方式: 通过获取源ip的hash值,然后取模的方式获取对应的后端服务器
5.4 最小连接数: 每次获取后端服务器的时候,都是首先获取tcp连接数最小的服务器
5.5 路由表的方式: 每次查询路由表来决定这次请求应该由哪个服务器进行处理
5.6 一致性hash: 通过一致性hash算法来确定key所要选择的服务器,最大的好处是增加/删减服务器节点时,最多只影响k/n个key,其中k是总的key数量,n是服务器节点的数量.