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

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

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

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

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

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

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

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

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

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

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

服务限流

最新文章

  1. java基础-泛型2
  2. Python第八天
  3. 第 16 章 CSS 盒模型[上]
  4. Android消息机制源码分析
  5. 星号代替数字 js语句
  6. iOS图片加载速度极限优化—FastImageCache解析
  7. Treap(树堆):随机平衡二叉树实现
  8. hdu 1576 求逆元
  9. final关键字+const关键字
  10. linux普通用户权限设置为超级用户权限方法、sudo不用登陆密码
  11. Android IOS WebRTC 音视频开发总结(十)-- webrtc入门002
  12. 模式识别 - 处理多演示样例学习(MIL)特征(matlab)
  13. 移动web问题小结
  14. Factorial Solved Problem code: FCTRL
  15. Java基础7:关于Java类和包的那些事
  16. c/c++ 标准库 pair 介绍
  17. Deep Learning Tutorial - Multilayer perceptron
  18. jeecg Export导出图片到excel
  19. 【招聘】这一次,我们Hold住了世界杯
  20. All flavors must now belong to a named flavor dimension

热门文章

  1. captcha ~ 生成验证码图片
  2. OS之内存管理 --- 虚拟内存管理(一)
  3. DockerFile(保你会版本)(七)
  4. 李航统计学习方法——算法2k近邻法
  5. node-rsa非对称加密
  6. Bash算术运算
  7. 26、redis中默认有多少个哈希槽?
  8. js便签笔记(14)——用nodejs搭建最简单、轻量化的http server
  9. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(七):集成 Druid 数据源
  10. springboot+zuul(一)------实现自定义过滤器、动态路由、动态负载。