龙空技术网

分享:高可用!

混子f8md 1091

前言:

此时同学们对“nginxdr模式”大概比较讲究,你们都需要剖析一些“nginxdr模式”的相关内容。那么小编在网上汇集了一些有关“nginxdr模式””的相关知识,希望看官们能喜欢,看官们快快来了解一下吧!

一、负载均衡与反向代理

Nginx一般用于七层负载均衡,其吞吐量是有一定限制的。为了提升整体吞吐量,会在DNS和Nginx之间引入接入层,如使用LVS(软件负载均衡器)、F5(硬负载均衡器)可以做四层负载均衡,即首先DNS解析到LVS/F5,然后LVS/F5转发给Nginx,再由Nginx转发给后端Real Server。

二层负载均衡是通过改写报文的目标MAC地址为上游服务器MAC地址,源IP地址和目标IP地址是没有变的,负载均衡服务器和真实服务器共享同一个VIP,如LVS DR工作模式。四层负载均衡是根据端口将报文转发到上游服务器(不同的IP地址+端口),如LVS NAT模式、HaProxy,七层负载均衡是根据端口号和应用层协议如HTTP协议的主机名、URL,转发报文到上游服务器(不同的IP地址+端口),如HaProxy、Nginx。

这里再介绍一下LVS DR工作模式,其工作在数据链路层,LVS和上游服务器共享同一个VIP,通过改写报文的目标MAC地址为上游服务器MAC地址实现负载均衡,上游服务器直接响应报文到客户端,不经过LVS,从而提升性能。但因为LVS和上游服务器必须在同一个子网,为了解决跨子网问题而又不影响负载性能,可以选择在LVS后边挂HaProxy,通过四到七层负载均衡器HaProxy集群来解决跨网和性能问题。

现在Nginx的stream也支持TCP,所以Nginx也算是一个四到七层的负载均衡器,一般场景下可以用Nginx取代HaProxy。Nginx负载均衡器本身也是一台反向代理服务器,将用户请求通过Nginx代理到内网中的某台上游服务器处理,反向代理服务器可以对响应结果进行缓存、压缩等处理以提升性能。

二、隔离术

隔离是指将系统或资源分割开,系统隔离是为了在系统发生故障时,能限定传播范围和影响范围,即发生故障后不会出现滚雪球效应,从而保证只有出问题的服务不可用,其他服务还是可用的。资源隔离通过隔离来减少资源竞争,保障服务间的相互不影响和可用性。

1、线程隔离

线程隔离主要是指线程池隔离,在实际使用时,我们会把请求分类,然后交给不同的线程池处理。

2、进程隔离

通过进程隔离使得某一个子系统出现问题时不会影响到其他子系统。

3、集群隔离

服务分组,这样当某一个分组出现问题时,不会影响到其他分组,从而实现了故障隔离。

4、机房隔离

多机房部署,每个机房的服务都有自己的服务分组,本机房的服务应该只调用本机房服务,不进行跨机房调用。

5、读写隔离

通过主从模式将读和写集群分离。

6、动静隔离

7、爬虫隔离

一种解决办法是通过限流解决,另一种解决办法是在负载均衡层面将爬虫路由到单独集群,从而保证正常流量可用,爬虫流量尽量可用。

8、热点隔离

9、资源隔离

三、限流详解

一般开发高并发系统常见的限流有:限制总并发数、限制瞬时并发数、限制时间窗口内的平均速率,以及限制远程接口调用速率、限制MQ的消费速率等。

常见的限流算法有:令牌桶、漏桶。

四、降级特技

当访问量剧增、服务出现问题(如响应时间长或不响应)或非核心服务影响到核心流程的性能时,仍然需要保证服务还是可用的,即使是有损服务。系统可以根据一些关键数据进行自动降级,也可以配置开关实现人工降级。

降级的最终目的是保证核心服务可用,即使是有损的。(丢卒保帅)

1、降级预案

降级按照是否自动化可分为:自动开关降级和人工开关降级。

降级按照功能可分为:读服务降级和写服务降级。

降级按照处于的系统层次可分为:多级降级。

2、自动开关降级

超时降级统计失败次数降级故障降级限流降级

3、人工开关降级

4、读服务降级

5、写服务降级

6、多级降级

五、超时与重试机制

如果应用不设置超时,则可能会导致请求响应慢,慢请求累积导致连锁反应,甚至造成应用雪崩。

其中最重要的超时设置是网络连接/读/写的超时时间设置。

六、回滚机制

最常见的如事务回滚、代码库回滚、部署版本回滚、数据版本回滚、静态资源版本回滚等。

七、压测与预案

一般通过系统压测来发现系统瓶颈和问题,然后进行系统优化和容灾。在大促之前需要进行预案演习,确保预案的有效性。

压测一般指性能压力测试,用来评估系统的稳定性和性能,线上压测的方式非常多,按读写分为读压测、写压测和混合压测,按数据仿真度分为仿真压测和引流压测,按是否给用户提供服务分为隔离集群压测和线上集群压测。

应急预案可按照如下几步进行:首先进行系统分级,然后进行全链路分析、配置监控报警,最后制定应急预案。

标签: #nginxdr模式