亿级流量网站架构核心技术-第二部分 高可用

2.负载均衡与反向代理

 

亿级流量网站架构核心技术-第二部分 高可用

为什么用同时使用LVS+Nginx:

亿级流量网站架构核心技术-第二部分 高可用

但是仅仅使用lvs作为负载均衡的话,一旦后端接受到请求的服务器出了问题,那么这次请求就失败了。但是如果在lvs的后端在添加一层nginx(多个),每个nginx后端再有几台应用服务器,那么结合两者的优势,既能避免单nginx的流量集中瓶颈,又能避免单lvs时一锤子买卖的问题

可以查看https://blog.****.net/BuquTianya/article/details/52076153

负载均衡算法

 1、轮询(默认)

        每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。

    2、weight(轮询权值)

        weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。

    3、ip_hash

        每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。

    4、fair

        比 weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间 来分配请求,响应时间短的优先分配。Nginx本身不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块。

    5、url_hash

        按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。

详情查看https://www.cnblogs.com/lvgg/p/6140584.html

 

3 隔离术

     3.1 线程隔离

线程隔离主要有线程池隔离,在实际使用时我们会把请求分类,然后交给不同的线程池处理,当一种业务的请求处理发生问题时,不会将故障扩散到其他线程池,从而保证其他服务可用

亿级流量网站架构核心技术-第二部分 高可用

3.2进程隔离

亿级流量网站架构核心技术-第二部分 高可用

3.5读写隔离

亿级流量网站架构核心技术-第二部分 高可用

3.8热点隔离

亿级流量网站架构核心技术-第二部分 高可用

3.10 使用Hystrix实现隔离 

亿级流量网站架构核心技术-第二部分 高可用

4 限流详解 

亿级流量网站架构核心技术-第二部分 高可用

4.1限流算法

   令牌桶算法和漏桶算法

4.2.2限流总资源数

  线程池,数据库连接池

 4.2.3限制某个接口的总并发数

亿级流量网站架构核心技术-第二部分 高可用

4.2.5平滑限流某个接口的请求数

    使用GUAVA RateLimiter提供的令牌桶算法

4.3分布式限流

 Redis+Lua

 Nginx+lug