高可用原则
总的来说:
异步跑批调用
只读缓存--返回空,或者mock数据---缓存存好出异常时展现的静态数据
负载均衡--多节点部署
限制最大流量访问防洪水攻击
1 降级
降级开关的设计思路如下:
1. 集中管理开关:把开关推送到各个应用。
2. 可降级的多级读服务:比如服务调用降级为只读本地缓存、只读分布式缓存、只读默认降级数据(如库存状态默认有货)。
3. 前置开关:例如,架构是Nginx->Tomcat,可以将开关前置到Nginx接入层,在Nginx层做开关,请求流量回源后端应用或者只是一小部分流量回源。
4. 业务降级:当高并发流量来袭,设计电商系统大促时保证用户能下单和能支付是核心要求,并保证数据最终一致性即可。可以把一些同步调用改成异步调用,优先处理高优先级数据或特殊特征的数据,合理分配进入系统的流量,以保证系统可用。
2 限流
限流的目的是防止恶意请求流量、恶意攻击以及流量超出系统峰值。实现思路如下:
1. 恶意请求流量只访问到cache。
2. 对于穿透到后端应用的流量,可以考虑使用Nginx的limit模块处理。
3. 对于恶意IP,可以使用nginx deny进行屏蔽。
原则上限制流量穿透到后端薄弱的应用层。
3 切流量
如果某台服务器挂了,需要切流量,切换方式如下:
1. DNS:切换机房入口。
2. HttpDNS:主要在APP场景下,客户端分配好流量入口后绕过运营商LocalDNS并实现更精准流量调度。
3. LVS/HaProxy:切换故障的Nginx接入层。
4. Nginx:切换故障的应用层。
4 可回滚
版本化的目的是实现可审计可追溯,并且可回滚。当程序或数据出错时,如果有版本化机制,那么可以通过回滚恢复到最近一个正确的版本,比如事务回滚和代码库回滚。
通过负载均衡和反向代理实现分流,通过限流保护服务免受雪崩之灾,通过降级实现部分可用和有损服务,通过隔离实现故障隔离,通过设置合理的超时与重试机制来避免请求堆积造成雪崩,通过回滚机制快速修复错误版本。上述原则可以实现系统高可用。
相关推荐
本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让...
本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让...
### 高并发高可用的可伸缩架构设计原则 在当今互联网时代,随着用户规模的不断扩大和技术需求的日益复杂,构建能够支持高并发、具备高可用性和可伸缩性的系统架构变得至关重要。本文将深入探讨高并发高可用的可伸缩...
【高可用原则】 确保系统的高可用性,通常涉及降级、限流和故障隔离等策略。降级可以通过开关集中管理,如只提供多级读服务,或者在遇到高并发时暂时关闭某些非核心功能。限流可以防止恶意请求,保护系统稳定。DNS...
本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让...
本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让...
"MySQL性能优化和高可用架构实践" 本书《MySQL性能优化和高可用架构实践》是一本详细介绍MySQL性能优化和高可用架构实践的书籍,旨在帮助读者提升MySQL数据库的性能和可靠性。本书的内容涵盖了查询优化的基本原则和...
本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让...
本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让...
本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让...
"架构设计参考 高可用架构"这一主题旨在深入探讨如何构建能够承受高流量、确保服务连续性和提供优秀用户体验的系统。这是一份面向架构师、软件架构设计者以及对运维设计感兴趣的从业人员的学习资料。 首先,我们要...
本文档详细介绍了 Zabbix 监控平台的高可用架构设计,包括总体设计原则、数据库存储、haproxy+keepalived 高可用集群、Mysql 主从复制、Oneproxy 读写分离等内容。 总体设计原则 Zabbix 监控平台的高可用架构设计...