本次阅读的是《架构真经》第8,9章的内容,以下是阅读后的总结:
一、有备无患
1、用“泳道”隔离故障,隔离的好处 不赘述。隔离的原则:泳道不共享、泳道之间不进行同步调用。异步调用设置超时和开关控制,限制泳道间异步调用。
2避免系统串联:这个比较常见的雪崩源头都是系统串联,其中一环发生问题,不断导致上游出问题,而上游显得很被动,串联组件受多重失败乘法效应的影响。减少以串联形式连接的组件数量。
3、启用和禁用功能:限流降级的重要性,最大程度的保证应用不被其他应用拖垮。核心依赖的跑不了。超然物外,力求无状态,有状态会限制可扩展性,降低可用性并增加成本。
二异步通信
(1)尽可能异步通信:尽可能优先考虑异步通信而不是同步通信,异步通信可以削峰解耦,极大程度的避免耦合。同时同步调用使得整个程序停下来等待响应,它捆绑的所有服务和层,进而导致连锁性延迟或故障。
(2)思考数据价值:海量订单下的数据价值显得格外重要,一些无用的垃圾信息或者不重要信息占据昂贵的存储资源上,同时需要提供这种久远历史的查询,对整个系统的意义显得格外低下,之前超过6个月的物流详细信息进行了删除并引导到对应物流公司网址查,后来据说要保留下来以提供查询。还有就是6年前订单也要跟现有订单一起查,体会不到这个看似无比强大的能力背后带来的价值和整个系统架构为了实现该功能所付出的代价,也许站的角度不同,不被感知。