您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 熔断器Hystrix的使用与原理
熔断器器Hystrix的使⽤用与原理理余冰内容•1.服务雪崩效应•2.服务雪崩应对策略略•3.使⽤用Hystrix预防服务雪崩•4.预售中Hystrix的运⽤用•5.Hystrix的实现•6.Hystrix的运维•7.题外话:Netflix的技术栈•8.题外话:响应式编程服务雪崩效应•服务提供者的不不可⽤用导致服务调⽤用者的不不可⽤用BA•放⼤大的过程ABDCBADCBADCBADC服务雪崩效应•服务雪崩的产⽣生过程•1.服务提供者不不可⽤用•突发流量量/故障/Bug/缓存击穿•2.重试加⼤大流量量•⽤用户重试/调⽤用者重试•3.服务调⽤用者不不可⽤用•同步等待/资源耗尽BAABAB服务雪崩的应对策略略•1.流量量控制•⽹网关控制/⽤用户交互控制/关闭重试•2.改进缓存更更新模式•同步清除改为异步刷新•3.服务⾃自动扩容•AWS的autoscaling雪崩效应的应对策略略•服务分类•强依赖=不不可降级•弱依赖=可降级•4.服务调⽤用者降级服务•资源隔离•每个服务配置独⽴立资源•快速失败•超时机制•熔断机制•容错⽅方法使⽤用Hystrix预防雪崩•什什么是Hystrix?•Hystrix是⼀一个帮助解决分布式系统交互时超时处理理和容错的类库.•Hystrix的设计原则:•资源隔离/熔断器器/命令模式使⽤用Hystrix预防雪崩•Hystrix设计原则:资源隔离•Bulkheads:舱壁隔离模式使⽤用Hystrix预防雪崩•Hystrix设计原则:资源隔离•服务调⽤用资源隔离:线程池隔离商品详情服务(100线程)⽤用户请求商品服务价格服务商品评论服商品详情服务(100线程)⽤用户请求商品服务价格服务商品评论服•Hystrix设计原则:资源隔离•服务调⽤用资源隔离:线程池隔离使⽤用Hystrix预防雪崩商品详情服务(100线程)⽤用户请求商品服务20线程价格服务30线程商品评论服务20线程商品详情服务(100线程)⽤用户请求商品服务20线程价格服务30线程商品评论服务20线程使⽤用Hystrix预防雪崩•Hystrix设计原则:熔断器器模式•依赖服务调⽤用FailFast•恢复•健康状况/开关阈值/恢复时间窗关闭打开半开失败[低于开关阈值]成功成功失败熔断器器时间窗结束失败[达到开关阈值]•Hystrix设计原则:命令模式使⽤用Hystrix预防雪崩AppcontainerUserRequest命令模式依赖服务A线程池熔断器器命令模式依赖服务B线程池熔断器器rungetFallbackrungetFallback使⽤用Hystrix预防雪崩创建Command执⾏行行熔断器器开启?线程池拒绝?否否执⾏行行失败?执⾏行行Fallback否,返回结果是执⾏行行超时?否是Fallback成功?是,返回fallback获取结果否,抛出异常Metrics上报执⾏行行结果预售中Hystrix的运⽤用•1.预售商详⻚页•2.预售结算⻚页预售中Hystrix的运⽤用•预售结算⻚页•服务分类预售结算API商家API结算API燕鸥API购物⻋车API优惠券API钱包API强依赖弱依赖优惠码API卡系统API预售中Hystrix的运⽤用•预售结算⻚页•线程池隔离•熔断器器阈值设定•熔断窗⼝口设定•前后端fallbackHystrix的实现•Hystrix本地Metrics(健康状况统计)实现•1.4之前的实现:滑动窗⼝口•失败率=failure/(success+failure)Hystrix的实现•Hystrix本地Metrics(健康状况统计)实现•1.5的改为使⽤用RxJava的Observable.window()实现滑动窗⼝口.•RxJava的威⼒力力:简洁与线程安全Hystrix的运维•HystrixDashboard:Hystrix的运维•⽇日志记录:题外话:Netflix的微服务技术栈•Hystrix背后的公司:Netflix•Netflix的微服务开源框架:•Eureka:服务发现•Zuul:⽹网关•Archaius:分布式配置题外话:Java世界的响应式编程•RxJava•Akka•ReactiveStream•Vert.x•Ratpack•Reactor谢谢
本文标题:熔断器Hystrix的使用与原理
链接地址:https://www.777doc.com/doc-1798706 .html