《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.3高可用架构建设(下)

简介: 《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.3高可用架构建设(下)

《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.3高可用架构建设(上) https://developer.aliyun.com/article/1231890?groupCode=supportservice



重试策略-当调用外部服务异常时可以设置重试策略,每次重试时间递增,但

是需要设置最大重试次数和重试开关,避免对下游系统产生影响。


隔离-应用隔离,模块隔离,机房隔离和线程池隔离。可以按照优先级,不变

和变几个维度来隔离应用和模块,如抽象和不变的代码放在一个模块,这个模块的代码几乎不会修改,可用性高,经常变的业务逻辑放在一个模块里,这样就算有问题,也只会影响到某一个业务。不同的业务使用不同的线程池,避免低优先级任务阻塞高优先级,或高优先级任务过多时影响低优先级任务永远不会执行。


异步调用-同步调用改成异步调用,解决远程调用故障或调用超时对系统的影

响。


热点缓存-对热点数据进行缓存,降低RPC调用。如B系统提供名单服务,B系

统可以提供一个client SDK提供近端缓存服务,定期去服务器端取数据,减少RPC调用。


缓存容灾-当数据库不可用时可以使用缓存的数据。并设置分级缓存,如优先

读本地缓存,其次读分布式缓存。


分级缓存-优先读本地缓存,其次读分布式缓存。通过推模式更新本地缓存。


系统分级-对系统进行分级,如ABC三个等级,高级别系统不依赖于低级别系

统,并且高级别系统比底级别系统高可用率要高。


服务降级-如果系统出现响应缓慢等状况,可以关闭部分功能,从而释放系统

资源,保证核心服务的正常运行。需要识别哪些服务可以降级,比如突然有大量消息流入,导致服务不可用,会把消息直接丢弃掉。或通过设置流控,拒绝为低级别系统提供服务。


流量蓄洪-当流量陡增时,可以将请求进行蓄洪,如把请求保存在数据库中,

再按照指定的QPS进行泄洪,有效的保护下游系统,也保证了服务的可用性。当调用对方系统,对方系统响应缓慢或无响应时,可采取自动蓄洪。


服务权重-在集群环境中,可自动识别高性能服务,拒绝调用性能低的服务。

如在集群环境中,对调用超时的服务器进行权重降低,优先调用权重高的服务器。


依赖简化-减少系统之间的依赖,比如使用消息驱动,A和B系统通过消息服务

器传递数据,A和B系统使用数据库进行读写分离,A系统负责往数据库中写数据,B系统负责读数据,因为数据存放在数据库中,当A不可用时,短时间内不影响B系统提供服务。


弹性扩容-根据资源的使用率自动或手动进行扩容。如带宽不够用时,快速增

加带宽。


灰度和回滚-发布新功能只让部分服务器生效,且观察几天逐渐切流,如果出

现问题只影响部分客户。出现问题快速回滚,或者直接下线灰度的机器。


减少远程调用-优先调用本地JVM内服务,其次是同机房服务,然后是同城服

务,最后是跨城服务。如A调用B,B调用互联网的C系统获取数据,B系统可以把数据缓存起来,并设置数据的保鲜度,减少B对C的依赖。配置中心把注册服务的地址推送到调用服务的系统本地。参数中心把参数配置信息推送到系统的本地内存,而不是让系统去远程服务器获取参数信息。


熔断机制-增加熔断机制,当监控出线上数据出现大幅跌涨时,及时中断,避

免对业务产生更大影响。如做指标计算时,指标可以计算慢,但是不能算错,如果发现某个用户的指标环比或同比增长一倍或跌零,会考虑保存所有消息,并中止该用户的指标计算。


运行时加载模块-把经常变的业务代码变成一个个业务模块,使用Java的

ClassLoader在运行时动态加载和卸载模块,当某个模块有问题时候,可以快速修复


代码扫描-使用IDEA代码分析等工具进行代码扫描,识别出程序中的BUG,如

空指针异常,循环依赖等。


自动备份-程序,系统配置和数据定期进行备份。可使用linux命令和shell脚本

定时执行备份策略,自动进行本地或异地。出现问题时能快速重新部署。


线上压测-系统的对外服务需要进行压测,知道该服务能承受的QPS和TPS,

从而做出相对准确的限流。

相关文章
|
10月前
|
运维 监控 安全
公链开发中的高可用架构设计要点
本指南提供公链高可用架构的可复用流程与模板,涵盖目标拆解、先决条件、分步执行、故障排查及验收标准,结合跨链DApp与量化机器人案例,提升落地效率与系统稳定性。
|
10月前
|
存储 缓存 安全
某鱼电商接口架构深度剖析:从稳定性到高性能的技术密码
某鱼电商接口架构揭秘:分层解耦、安全加固、性能优化三维设计,实现200ms内响应、故障率低于0.1%。详解三层架构、多引擎存储、异步发布、WebSocket通信与全链路防护,助力开发者突破电商接口“三难”困境。
|
11月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
11月前
|
SQL 监控 关系型数据库
MySQL主从复制:构建高可用架构
本文深入解析MySQL主从复制原理与实战配置,涵盖复制架构、监控管理、高可用设计及性能优化,助你构建企业级数据库高可用方案。
|
12月前
|
存储 弹性计算 运维
AI 时代下阿里云基础设施的稳定性架构揭秘
十五年磨一剑,稳定性为何是今天的“命门”?
1374 151
|
12月前
|
运维 监控 搜索推荐
MSE ZooKeeper:Flink 高可用架构的企业级选择
本文深入解析了 Apache Flink 架构中 ZooKeeper 的核心作用,包括 Leader 选举、Checkpoint 管理、作业协调及配置管理等关键功能,并结合金融风控与电商推荐等典型场景,分析了 ZooKeeper 在实际应用中的技术实现。
|
文字识别 运维 监控
架构解密|一步步打造高可用的 JOCR OCR 识别服务
本文深入解析了JOCR OCR识别服务的高可用架构设计,涵盖从用户上传、智能调度、核心识别到容错监控的完整链路,助力打造高性能、低成本的工业级OCR服务。
510 0
架构解密|一步步打造高可用的 JOCR OCR 识别服务
|
Ubuntu 编译器 C语言
在Ubuntu22.04平台上交叉编译针对Rv1126架构的GCC13.2.0编译器的步骤。
遵循上述步骤,您应该能够在Ubuntu 22.04平台上成功交叉编译适用于RISC-V架构RV1126的GCC 13.2.0编译器,允许您为目标硬件构建应用程序和操作系统组件。
758 10
|
运维 监控 Java
初创代购选单体,千万级平台用微服务:一张表看懂架构选型红线
在跨境电商代购系统年交易额超3.2万亿元的背景下,本文对比微服务与单体架构的技术原理、适用场景及实战案例,结合性能、运维、成本等维度,为企业提供架构选型指南,助力实现高效扩展与稳定运营。
|
存储 运维 Java
官宣 | Fluss 0.7 发布公告:稳定性与架构升级
Fluss 0.7 版本正式发布!历经 3 个月开发,完成 250+ 次代码提交,聚焦稳定性、架构升级、性能优化与安全性。新增湖流一体弹性无状态服务、流式分区裁剪功能,大幅提升系统可靠性和查询效率。同时推出 Fluss Java Client 和 DataStream Connector,支持企业级安全认证与鉴权机制。未来将在 Apache 孵化器中继续迭代,探索多模态数据场景,欢迎开发者加入共建!
1026 8
官宣 | Fluss 0.7 发布公告:稳定性与架构升级