网站架构设计之高可用原则

网站架构设计之高可用原则
2019年07月24日 08:36 雷小天博客

在一些交易型网站架构设计之中,往往会涉及到高并发、高可用等原则。下面小编将简单概述下高可用原则,高可用原则一般分为下面四点:降级、限流、切流量、可回滚。

1.降级

对于一个高可用服务,很重要的一个设计就是降级开关,在设计降级开关时,主要依据如下思路。

1.1开关集中化管理:通过推送机制把开关推送到各个应用。

1.2可降级的多级都服务:比如服务调用降级为只读本地缓存、只读分布式缓存、只读默认降级数据

1.3开关前置化:如架构是Nginx、Tomcat,可以将开关前置到Nginx接入层,在Nginx层做开关,请求流量不回源后端Tomcat应用或者只是一小部分流量回源。

1.4业务降级:当高并发流量来袭,在电商系统大促销设计时保障用户能下单,能支付是核心要求,并保障数据最终一致性即可。

2.限流

限流的目的是防止恶意请求流量,恶意攻击,或者防止流量超出系统峰值。可以考虑如下思路:

2.1恶意请求流量只访问到cache

2.2对于穿透到后端应用的流量可以考虑使用Nginx的limit模块处理

2.3对于恶意IP可以使用nginx deny进行屏蔽

原则是限制流量穿透到后端薄弱的应用层。

3.切流量

对于一个大型应用,切流量是非常重要的,比如多机房环境下某个机房挂了,或者某个机架挂了,或者某台服务器挂了,都需要切流量,可以使用以下手段进行切换。

3.1DNS:切换机房入入口。

3.2HTTPDNS:主要APP场景下,在客户端分配好流量入口,绕过运营商LocalDNS并实现更精准流量调度.

3.3LVS/HaProxy:切换故障的Nginx接入层。

3.4Nginx:切换故障的应用层。

另外,有些应用为了更方便切换,还可以在Nginx接入层做切换,通过Nginx进行一些流量切换,而没有通过如LVS/HaProxy做切换。

4.可回滚

版本化的目的是实现可审计可追溯,并且可回滚。当程序或数据出错时,如果有版本化机制,那么就可以通过回滚恢复到最近一个正确的版本,如事务回滚,代码库回滚,部署版本回滚,数据版本回滚,静态资源版本回滚等。通过回滚机制可以保证系统某场景下的高可用。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部