雪崩效应的产生原因:当一个服务突然受到高并发的请求,tomcat服务器承受不了的情况下会产生服务堆积,可能导致其他的服务也不可用。

服务保护:当服务产生堆积的时候,对服务实现保护功能。

服务隔离:每个服务接口之间互不影响,服务隔离有2种实现方式,线程池方式、信号量。

1.线程池方式:相同服务接口都有自己独立的线程池,管理运行自己的接口。不同的线程池之间互不影响,能够完全实现服务接口隔离。缺点:CPU内存开销较大。

2.信号量方式:底层使用原子计数器(atomic),针对于每个服务都设置自己的独立的限制阈值。比如设置每个服务接口最多同时访问的次数,如果超出缓存队列请求后,自己实现拒绝策略。

服务降级:当服务不可用的时候(正在等待的时候、网络延迟、响应时间过长),客户端会处于一直等待的状态。显然一直等待是不合理的,所以我们应该给客户端返回一个友好的提示,使用fallback(回调方法)进行服务降级处理。

目的:为了提高用户体验(自定义消息返回给客户端),防止服务雪崩效应。比如:连接超时、网络延迟、服务器响应时间过长等情况。

服务熔断:当服务器达到最大的承受能力的之后,直接拒绝访问服务,然后调用降级方法,返回友好提示。

目的:为了防止服务不会宕机,会进行熔断处理。

产生的原因:服务请求过多,高并发情况下。可以设置阈值进行限制。超出的请求存放在缓存队列中,如果缓存队列中线程满的话,直接拒绝访问服务,访问不了服务(熔断)。

熔断和服务降级一起使用。

服务限流

最新文章

  1. Picard 法求方程根
  2. u3d_Shader_effects笔记5 第二章 通过UV,进行纹理移动
  3. javascript时间的一些问题
  4. zepto阻止事件冒泡
  5. Kali Linux渗透基础知识整理(四):维持访问
  6. mysql之触发器入门
  7. FreeIconMaker - 在线创建免费和时尚的图标
  8. POJ 1185 炮兵阵地(状态压缩DP)
  9. C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)
  10. Microsoft Azure File 服务简介
  11. 抽象类Abstract的简单使用
  12. git设计哲学
  13. 分享最近写的 两条sql语句
  14. 一个神奇SQL引发的故障【转】
  15. 51nod_1253:Kundu and Tree(组合数学)
  16. 数据抓取分析(python + mongodb)
  17. [cacti]nginx+php+cacti+mysql+php-fpm 安装小记
  18. C语言--字符串和数字的相互转换
  19. AI_群组行为
  20. pytest.8.使用pytest做简单的接口测试

热门文章

  1. Linux链接脚本学习--lds(转)
  2. 《Python编程从入门到实践》--- 学习过程笔记(2)变量和简单数据类型
  3. redis哨兵集群环境搭建
  4. 如何开启windows的linux子系统
  5. spring cloud sleuth
  6. url最后的“/”是什么作用
  7. Android在代码中获取meta标签内容
  8. maven-插件-不同的开发环境指定
  9. logstash与kafka消息传输<一>
  10. Python制作回合制手游外挂简单教程(上)