美文网首页
架构之稳定性

架构之稳定性

作者: jkyy10min | 来源:发表于2019-12-11 17:45 被阅读0次

今年夏天AWS挂了11小时,官方通报多处光缆因道路业务施工被挖断,我清晰的记得那是6.2,因为6.1带娃一天,第二天半夜报警就一直没断过。后面工程师一顿操作,然而网络问题太致命,最终无法挽回,用户也着急,公司是不是跑路了,这次问题太严重,后来做出了双机房。

当然这种case太极端了,流量攻击,DB慢查,接口超时,redis打满等才是研发常见的问题,在公司稳定性项目上断断续续做了一年,我整理了一份提高稳定性的思路供大家参考。

一 容量规划


1 容量目标:DID原则 - Design(D)设计20倍的容量;Implement(I)实施3倍的容量;Deploy(D)部署1.5倍的容量,根据DID指导原则,线上部署3倍当于当前流量,随着规模的扩张与收缩可以调整容量。

2 容量摸底:可以根据压测报告,或者根据当前服务cpu 内存使用率评估当前服务可以承受的容量,容量不足时需要扩容。

二 服务治理


1 隔离

内网外网服务隔离,比如一个服务既提供内网服务又提供外网服务就有风险,因为外网服务比较暴露被攻击的可能性比较大。

核心服务与非核心服务隔离,一般核心服务的改动少,非核心服务改动多,隔离开来有助于提高核心服务的稳定性。

2 超时

超时也是常见的坑,比如底层服务超时能引起大规模服务雪崩,mq,db,redis,http,rpc等远程调用都要考虑超时。已http为例,sockettimeout, connectTimeout,connectRequestTimeout 3个超时时间都要设置合适的超时,可以参照容量规划设置超时大小,或者参照当前rt99线来设置超时大小。

3 限流

恶意攻击或上游异常调用都能造成流量异常,常见的限流利器RateLimiter,Sentinel都是不错的选择。

4 熔断

比如调用下游服务异常,这时候如果继续调用一方面继续异常对业务没有帮助,一方面还会增加下游的服务压力,这时候可以引入hystrix就能提供较完整的解决方案。

5 定期压测

定期压测可以让你更清楚的了解当前系统的变化趋势。

三 数据治理


1 db

首先要数据收口,这样数据的及时性,一致性就有所保证

读写分离 当前也有很多方案比如spring读写分离和一些开源框架

合理使用索引 ,缓存

慢查询优化,分页数据没有限制,大事务引起延迟,表大了就要考虑分表了(五千万数据,还在快速增长中)

2 redis

过期 过期 过期一定要设置,可能那天redis内存打满,太恐怖。。。

kv内容过大导致内存压力,比如集群模式如果有热key导致集群压力不均匀

四 监控报警

硬件监控 业务监控 及对应报警

五 上线质量


可以考虑晚上交付流程保证质量

设计阶段 做什么****,搭建灰度环境,回滚方案等

ps 上线时看日志能大大提高上线质量,比如一个开发上线第一批机器都挂了还上线其他机器,你品,你仔细品。

持续更新中

相关文章

  • 架构之稳定性

    今年夏天AWS挂了11小时,官方通报多处光缆因道路业务施工被挖断,我清晰的记得那是6.2,因为6.1带娃一天,第二...

  • 分布式系统的稳定性

    常见的系统稳定性的方向: 基础架构方面: 入口稳定性(多入口,多vip)。 多机房部署。 扩容。 中间件方面: 数...

  • 浏览器工作原理和实践

    浏览器架构 早期IE 等浏览器 采用单进程的架构问题:① 稳定性差② 不流畅③ 不安全 多进程架构 浏览器主进程+...

  • iOS App 稳定性及监测

    一个iOS App的稳定性,主要决定于整体的系统架构设计,同时也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,...

  • iOS 应用稳定性监测和指标问题

    一个iOS App的稳定性,主要决定于整体的系统架构设计,同时也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,...

  • 系统稳定性大纲

    背景 软件系统的稳定性,主要决定于整体的系统架构设计,然而也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,一旦...

  • 内容平台架构重构&算法平台接入

    重构前系统架构: 缺少清晰系统架构体系,需求交付通过代码堆积完成,扩展性差、稳定性风险高 缺少清晰的领域模型,存在...

  • iOS架构初探(初级 MVC/MVP/MVVM)

    目录: 序言 一、架构的基础 二、架构之MVC 三、架构之MVP 四、架构之MVVM 序言: 架构其实是一个设计上...

  • 软件系统的稳定性

    软件系统的稳定性,主要决定于整体的系统架构设计,然而也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,一旦考虑不...

  • 怎么保障系统的稳定性

    转自阿里技术:3+1保障:高可用系统稳定性是如何炼成的? 稳定性=良好的架构设计和实现+完备的团队研发运维流程机制...

网友评论

      本文标题:架构之稳定性

      本文链接:https://www.haomeiwen.com/subject/nckagctx.html