快速失败与失败安全简述

简介: 快速失败与失败安全简述

先摆概念:系统运行中,如果有错误发生,那么系统立即结束,这种设计就是快速失败(fail-fast)。系统运行中,如果有错误发生,系统不会停止运行,它忽略错误(但是会有地方记录下来),继续运行,这种设计就是失败安全(fail-safe)。


以dubbo为例,在dubbo中,有一个AbstractClusterInvoker,其中有两个实现类FailfastClusterInvoker和FailsafeClusterInvoker


在dubbo的配置中,有一个cluster的属性,里面可以填“failfast”和“failsafe”,分别会在异常发生的时候执行FailfastClusterInvoker和FailsafeClusterInvoker。


看下这两个实现类之间的源码区别:


我们可以看到,在failfast的实现类中,如果发生了异常,会立即把它抛出去。

而在failsafe的实现类中,还是会返回一个空结果给调用方,然后打印错误日志,使得在异常发生的时候,程序不会终止,会继续执行下去。

对于快速失败和失败安全其实更多的是用在了集合中。

目录
相关文章
|
Web App开发 编解码 监控
【开源视频联动物联网平台】推流,拉流,转发,转码?
【开源视频联动物联网平台】推流,拉流,转发,转码?
1804 2
|
存储 NoSQL 算法
介绍一下HyperLogLog
【10月更文挑战第19天】介绍一下HyperLogLog
|
Kubernetes 持续交付 Docker
SpringCloud + K8S:容器化持续交付的强大组合
【8月更文挑战第22天】在当今快速迭代的软件开发环境中,如何高效、可靠地部署和管理微服务架构应用成为了技术团队面临的重大挑战。SpringCloud与Kubernetes(K8S)的结合,为微服务架构的容器化持续交付提供了强大的解决方案,极大地提升了应用的可扩展性、灵活性和可维护性。本文将从技术角度深入探讨这一组合的优势及其在工作学习中的实践应用。
1268 3
|
域名解析 负载均衡 网络协议
【域名解析DNS专栏】DNS解析中的Anycast技术:原理与优势
在互联网中,DNS将域名转换为IP地址至关重要。Anycast技术通过将同一IP地址分配给多台地理上分散的服务器,确保客户端总能连接到最近且最轻载的服务器,从而加速DNS解析、实现负载均衡、提升抵御DDoS攻击的能力及服务高可用性。通过动态路由协议如BGP实现,Anycast极大地增强了DNS系统的性能和稳定性。
1848 2
|
Android开发 Shell 数据库
android中获取root权限的方法以及原理(转)
一、 概述本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识。二、 Root 的介绍1. Root 的目的可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等。
5213 0
|
图形学 Python
Python绘制动态树形:实现分形树动画
Python绘制动态树形:实现分形树动画
530 0
|
安全 Android开发 C++
在 Android 中使用 Kotlin 调用动态库
在 Android 中使用 Kotlin 调用动态库
1008 0
|
Java 关系型数据库 MySQL
基于Java企业财务管理系统的设计与实现(论文+源码)_kaic
基于Java企业财务管理系统的设计与实现(论文+源码)_kaic
|
前端开发 JavaScript Java
毕业设计|课程设计|SSM开发实现图书管理系统
毕业设计|课程设计|SSM开发实现图书管理系统
470 1
|
缓存 NoSQL 关系型数据库
Redis与MySQL的数据情感:延迟双删的秘密揭示
Redis与MySQL的数据情感:延迟双删的秘密揭示
1479 0