1.前言

前半部分,专注在高并发这一块,缓存架构,承载高并发,在各种高并发导致的令人崩溃/异常的场景下,运行着缓存架构,高可用性,在各种系统的各个地方有乱七八糟的异常和故障的情况下,整套缓存系统还能继续健康的run着。

HA,HAProxy,主备服务间的切换,这就做到了高可用性,主备实例,多冗余实例,高可用最最基础的东西。

什么样的情况下,可能会导致系统的崩溃,以及系统不可用,针对各种各样的一些情况,然后我们用什么技术,去保护整个系统处于高可用的一个情况下。

2.hystrix

2.1 介绍

提供了高可用相关的各种各样的功能,然后确保说在hystrix的保护下,整个系统可以长期处于高可用的状态,100%,99.99999%

  • 资源隔离:让你的系统里,某一块东西,在故障的情况下,不会耗尽系统所有的资源,比如线程资源
    资源隔离,那一块代码,最多最多就是用掉10个线程,不能再多了,就废掉了,限定好的一些资源

  • 限流:高并发的流量涌入进来,比如说突然间一秒钟100万QPS,废掉了,10万QPS进入系统,其他90万QPS被拒绝了

  • 熔断:系统后端的一些依赖,出了一些故障,比如说mysql挂掉了,每次请求都是报错的,熔断了,后续的请求过来直接不接收了,拒绝访问,10分钟之后再尝试去看看mysql恢复没有

  • 降级:mysql挂了,系统发现了,自动降级,从内存里存的少量数据中,去提取一些数据出来

  • 运维监控:监控+报警+优化,各种异常的情况,有问题就及时报警,优化一些系统的配置和参数,或者代码

2.2 设计原则

  • 对依赖服务调用时出现的调用延迟和调用失败进行控制和容错保护
  • 在复杂的分布式系统中,阻止某一个依赖服务的故障在整个系统中蔓延,服务A->服务B->服务C,服务C故障了,服务B也故障了,服务A故障了,整套分布式系统全部故障,整体宕机
  • 提供fail-fast(快速失败)和快速恢复的支持
  • 提供fallback优雅降级的支持
  • 支持近实时的监控、报警以及运维操作

2.3 更加细节的设计原则

  • 阻止任何一个依赖服务耗尽所有的资源,比如tomcat中的所有线程资源
  • 避免请求排队和积压,采用限流和fail fast来控制故障
  • 提供fallback降级机制来应对故障
  • 使用资源隔离技术,比如bulkhead(舱壁隔离技术),swimlane(泳道技术),circuit breaker(短路技术),来限制任何一个依赖服务的故障的影响
  • 通过近实时的统计/监控/报警功能,来提高故障发现的速度
  • 通过近实时的属性和配置热修改功能,来提高故障处理和恢复的速度
  • 保护依赖服务调用的所有故障情况,而不仅仅只是网络故障情况

2.4 如何实现它的目标的

  • 通过HystrixCommand或者HystrixObservableCommand来封装对外部依赖的访问请求,这个访问请求一般会运行在独立的线程中,资源隔离
  • 对于超出我们设定阈值的服务调用,直接进行超时,不允许其耗费过长时间阻塞住。这个超时时间默认是99.5%的访问时间,但是一般我们可以自己设置一下
  • 为每一个依赖服务维护一个独立的线程池,或者是semaphore,当线程池已满时,直接拒绝对这个服务的调用
  • 对依赖服务的调用的成功次数,失败次数,拒绝次数,超时次数,进行统计
  • 如果对一个依赖服务的调用失败次数超过了一定的阈值,自动进行熔断,在一定时间内对该服务的调用直接降级,一段时间后再自动尝试恢复
  • 当一个服务调用出现失败,被拒绝,超时,短路等异常情况时,自动调用fallback降级机制
  • 对属性和配置的修改提供近实时的支持

亿级流量电商详情页系统实战-38.hystrix与高可用系统架构:资源隔离+限流+熔断+降级+运维监控相关推荐

  1. 最新亿级流量电商详情页系统的大型高并发与高可用缓存架构实战第一版附全套资料

    课程介绍(非升级版) 对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里很多朋友对缓存技术的了解与掌握,仅仅停留在掌握red ...

  2. 亿级流量电商详情页系统的大型高并发与高可用缓存架构实战 目录

    对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里很多朋友对缓存技术的了解与掌握,仅仅停留在掌握redis/memcache ...

  3. 亿级流量电商详情页系统实战:缓存架构+高可用服务架构+微服务架构

    <缓存架构+高可用服务架构+微服务架构>深入讲解了亿级流量电商详情页系统的完整大型架构.同时最重要的是,在完全真实的大型电商详情页系统架构下,全流程实战了整套微服务架构,包含了基于领域驱动 ...

  4. 亿级流量电商详情页系统的大型高并发与高可用缓存架构实战

    2019独角兽企业重金招聘Python工程师标准>>> 对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里 ...

  5. 大型电商架构亿级流量电商详情页系统实战--redis基础票

    亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构 01_高并发高可用复杂系统中的缓存架构有哪些东西 (1)如何让redis集群支撑几十万QPS高并发+99.99%高可用+TB级海量数据 ...

  6. 19.亿级流量电商详情页系统实战---总结

    文章目录 1.亿级流量电商网站的商品详情页系统架构 2.redis企业级集群架构 3.多级缓存架构设计 4.数据库+缓存双写一致性解决方案 5.缓存维度化拆分解决方案 6.缓存命中率提升解决方案 7. ...

  7. 大型电商架构亿级流量电商详情页系统--实战 服务降级

    86_电商网站的商品详情页缓存服务业务背景以及框架结构说明 我们这个课程,基于hystrix,如何来构建高可用的分布式系统的架构,项目实战 模拟真实业务的这么一个小型的项目,来全程贯穿,用这个项目中的 ...

  8. 大型电商架构亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构(七)

    文章目录 八十九.高并发场景下恐怖的缓存雪崩现象以及导致系统全盘崩溃的后果 九十.缓存雪崩的基于事前+事中+事后三个层次的完美解决方案 九十一.基于hystrix完成对redis访问的资源隔离以避免缓 ...

  9. 亿级流量电商详情页系统的大型高并发与高可用缓存架构

    1.亿级流量电商网站的商品详情页系统架构 面临难题:对于每天上亿流量,拥有上亿页面的大型电商网站来说,能够支撑高并发访问,同时能够秒级让最新模板生效的商品详情页系统的架构是如何设计的? 解决方案:异步 ...

最新文章

  1. “去中心化”为何意义重大?
  2. The Elements of C# Style -Naming
  3. JEPLUS学习心得之请假单功能的完成——JEPLUS软件快速开发平台
  4. SQL Tips:兼顾检索速度和精确性
  5. 凝结时光:ImageMagick 制作 gif
  6. One order里user status和system status的mapping逻辑
  7. 参加51CTO培训,华为HCNP认证考试通过啦
  8. Redis五种数据类型详解
  9. Android中的APK,TASK,PROCESS,USERID之间的关系
  10. linux中PATH变量-详细介绍
  11. Docker的基本认识及使用
  12. WPF 入门教程打印控件
  13. linux usb转串口驱动报错,USB转串口驱动编译出错
  14. Python 学习笔记 - 函数
  15. storm笔记:storm集群
  16. Solidworks如何标注垂直度,平行度
  17. 《Grid R-CNN》论文笔记
  18. 【金猿投融展】DataPipeline——成为中国的世界级数据中间件厂商
  19. 卷起来的大厂年终奖:网易年终奖888888,真爽啊
  20. 远程桌面窗口的字体异常的处理办法

热门文章

  1. GridView CommandArgument 绑定多个参数
  2. 小米wifi智能家居android,小米智能家居
  3. 利用Kali Linux进行一些简单可操作的攻击
  4. 想系统学习计算机的法学专业学生
  5. 如何挑选性价比较高的固态硬盘SSD?
  6. 数据清洗- Pandas 清洗“脏”数据(一)
  7. 【MacOS】MacBook使用本机m1芯片GPU训练的方法(mps替代cuda)
  8. 云胶片云PACS源码
  9. CAN现场总线基础知识总结,看这一篇就理清了(CAN是什么,电气属性,CAN通协议等)
  10. 修改mysql 表数据翻倍_【原创】关于MySQL表设计应该注意的问题(做了点修改)