高可用
2023-12-04 17:46:21 7 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
java
作者其他创作
大纲/内容
代理层超时与重试
Web容器超时
中间件客户端超时与重试
数据库客户端超时
Nosql客户端超时
业务超时
前端Ajax超时
超时与重试
运维监控
目的是保证核心服务可用,即使是有损的
降级预案
根据系统负载、资源使用情13;况、SLA等指标进行降级
超时降级
统计失败次数降级
故障降级
限流降级
自动/开关降级
读/写服务降级
多级降级
配置中心
使用Hystrix降级
使用Hystrix熔断
降级
计数器算法
漏桶算法
令牌桶算法
超链接
限流算法
限流总并发/连接/请求数
限流总资源数
限流某个接口的总并发/请求数
限流某个接口的时间窗请求数
平滑限流某个接口的请求数(令牌桶)
应用级限流
关键是将限流服务原子化
Redis+lua
Nginx+lua
分布式限流
接入层指请求流量的入口
接入层限流
限流
指通过设计减少系统不能提供服务的时间
要点:1.集群化(冗余);2.自动故障转移
核心概念
轮询/比率/IP Hash/优先权
静态负载均衡
最小连接数/最快模式/预测模式
动态负载均衡
负载均衡算法
失败重试机制
nginx默认惰性策略,通过TCP心跳和HTTP心跳
健康检查机制
负载均衡
系统隔离保证故障发生后,只有发生故障的服务不可用,不影响其它服务
资源隔离通过隔离减少资源竞争,保障服务间互不影响或可用性
系统/资源隔离
进程/线程隔离
集群/机房隔离
读写隔离
动静隔离
爬虫/热点隔离
在该模式下,用户请求会被提交到各自的线程池中执行,把13;执行每个下游服务的线程分离,从而达到资源隔离的作用。13;当线程池来不及处理并且请求队列塞满时,新进来的请求将13;快速失败,可以避免依赖问题扩散。
对所依赖的多个下游服务,通过线程池的异步执行,有效提高接口性能
线程池隔离
在该模式下,接收请求和执行下游依赖在同一个线程内完成,13;不存在线程上下文切换所带来的性能开销,所以大部分场景13;应该选择信号量模式
接口依赖多个下游服务时,多个服务熔断降级串行化
信号量隔离
使用Hystrix隔离
请求异步化
基于servlet 3的请求隔离
隔离
事务回滚
代码库回滚
部署版本回滚
数据版本回滚
静态资源版本回滚
回滚
高可用
0 条评论
回复 删除
下一页