第十一周课后练习

用户头像
饭桶
关注
发布于: 2020 年 12 月 07 日

导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。



隔离

业务与子系统隔离

微服务与中台架构

生产消费者隔离

虚拟机与容器隔离

其中一个故障,不影响其他应用。



异步

多线程编程

反应式编程

异步通信网络编程

时间驱动异步架构



备份

集群设计

数据库复制



Failover(失效转移)

数据库主主失效转移

负债均衡失效转移



设计无状态的服务



幂等:服务的重复调用与调用一次是一样的。比如转账。如果中途失败,确定保其只转一次钱。



事务补偿:通过执行业务逻辑你操作,使事务回滚到事务前状态。



熔断

断路器,关闭,打开,半开。



限流

拒绝部分请求。

策略

计数器算法,单位时间内记录请求次数。滑动窗口解决计数器清零临界期,导致流量激增的问题。

令牌桶算法,单位周期内保证令牌的数量。

漏铜算法,漏桶算法出口是均匀的。





自适应限流,系统根据自己情况决定处理多少流量



降级,对于一些非核心功能(流量比较大),通过降低服务的等级,来确保其他的重要服务能够正常执行。



异地多活

多地部署数据中心。挑战:异地存储导致数据不一致。



自动化测试,thoughtWorks开发的selenium

自动将期望值与真实值做对比。测试工程师干的。保证线上工程质量负责,保证线上系统的正确性。

单元测试,是RD需要干的。保证自己代码的正确性。





预发布验证

比如,第三方接口以及真实的数据。





预发布服务,不接入负载均衡。而是通过host绑定。只有开发工程师才能访问这台服务器。不是全量测试,而是关键点验证。



自动化发布

发布是人在控制,发布过程是自动化的。



灰度发布

针对大型的线上服务。

网站运行监控



用户行为日志采集



报警、自动控制(自动失效转移,自动扩容、自动限流)

通过代理进程收集相关信息,上报给数据中心,进行数据分析。



高可用的价值观

1,保持简单,是问题已于发现,快速解决。

2,目标明确,解决特定环境下的具体问题。

3,价值回归,成本收益要合理。



用户头像

饭桶

关注

还未添加个人签名 2020.07.27 加入

还未添加个人简介

评论

发布
暂无评论
第十一周课后练习