一、弹力设计篇
1.1、认识故障和弹力设计
1.1.1系统可用性测量
1.1.2故障原因
1.1.3故障不可避免
1.2、隔离设计Bulkheads
1.2.1按服务的种类来做分离
1.2.2按用户的请求来做分离
1.2.3隔离设计的重点
1.3、异步通讯设计 Asynchronous
1.3.1异步通讯的三种方式
1.3.1.1请求响应式
1.3.1.2通过订阅的方式
1.3.1.3通过Broker的方式
1.3.2事件驱动设计
1.3.3异步通讯的设计重点
1.4、幂等性设计Idempotency
1.4.1全局ID
1.4.2处理流程
1.4.3HTTP的幂等性
1.5、服务的状态State
1.5.1无状态的服务Stateless
1.5.2有状态的服务Stateful
1.5.3服务状态的容错设计
1.6、补偿事务Compensating Transaction
1.6.1ACID和BASE
1.6.2业务补偿
1.6.3业务补偿的设计重点
1.7、重试设计Retry
1.7.1重试的场景
1.7.2重试的策略
1.7.3Spring的重试策略
1.7.4重试设计的重点
1.8、熔断设计Circuit Breaker
1.8.1熔断设计
1.8.2熔断设计的重点
1.9、限流设计Throttle
1.9.1限流的策略
1.9.2限流的实现方式
1.9.2.1计数器方式
1.9.2.2队列算法
1.9.2.3漏斗算法Leaky Bucket
1.9.2.4令牌桶算法Token Bucket
1.9.2.5基于响应时间的动态限流
1.9.3限流的设计要点
1.10、降级设计Degradation
1.10.1降低一致性
1.10.1.1使用异步简化流程
1.10.1.2降低数据的一致性
1.10.2停止次要的功能
1.10.3简化功能
1.10.4降级设计的要点
1.11、弹力设计总结
1.11.1弹力设计总图
1.11.2弹力设计开发和运维