容错机制

常见容错机制:failover、failfast、failback、failsafe

半腔热情 提交于 2019-12-26 01:14:19
1.failover:失效转移 Fail-Over的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,可以拿备Master做主使用 2.failfast:快速失败 从字面含义看就是“快速失败”,尽可能的发现系统中的错误,使系统能够按照事先设定好的错误的流程执行,对应的方式是“fault-tolerant(错误容忍)”。以JAVA集合(Collection)的快速失败为例,当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常(发现错误执行设定好的错误的流程),产生fail-fast事件。 3.failback:失效自动恢复 Fail-over之后的自动恢复,在簇网络系统(有两台或多台服务器互联的网络)中,由于要某台服务器进行维修,需要网络资源和服务暂时重定向到备用系统。在此之后将网络资源和服务器恢复为由原始主机提供的过程,称为自动恢复 4.failsafe:失效安全 Fail-Safe的含义为“失效安全”

这个小姐姐说:你之前所知道的区块链可能都是错的

一世执手 提交于 2019-12-19 23:28:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 随着币价的一直下跌,有传言说,比特币价格此次崩盘,只是大 BOSS 吴忌寒为加速淘汰老旧矿机而祭出的绝招。 无论这个阴谋论真假与否,在整个区块链行业的凛冽寒冬中,价格的涨跌已经左右了太多的人头脑之中的理智。可是,众人之中,究竟有几个人真正理解了区块链技术的密码学机制与分布式计算?究竟有几个人还会关心区块链在技术上的创新? 尘归尘,土归土。可能只有巨大的泡沫消散之后,区块链才能通过技术创新显示出真正的影响力。让区块链回归技术与应用的本质,这也是我们一直以来的定位。然而,传播这样的内容和话题,离不开货真价实的技术干货,以及有感染力的人物和故事。 我们今天的内容就来自于这样一个女生: 她是工业与系统工程专业出身,做过顶级投行高盛的分析师,做过著名风投 a16z 的合伙人——这都是许多人梦寐以求的工作。但是,功成名就的路上,她却发现编程才是自己想要的生活。 笨办法学会编程?她没学会。如何用 HTML/CSS 做一个网页?她开始上瘾了。所以,没有选择斯坦福、MIT 的编程学位,她更喜欢 Hack Reactor 的全栈动手实践。先学 JavaScript、React,后面的想法是机器学习、计算机视觉……这个女生就是 Preethi Kasireddy。 接触区块链之后,金融从业背景和全栈编程能力让 Preethi

常见容错机制:failover、failfast、failback、failsafe

百般思念 提交于 2019-12-13 16:43:51
1.failover:失效转移 Fail-Over的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,可以拿备Master做主使用 2.failfast:快速失败 从字面含义看就是“快速失败”,尽可能的发现系统中的错误,使系统能够按照事先设定好的错误的流程执行,对应的方式是“fault-tolerant(错误容忍)”。以JAVA集合(Collection)的快速失败为例,当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常(发现错误执行设定好的错误的流程),产生fail-fast事件。 3.failback:失效自动恢复 Fail-over之后的自动恢复,在簇网络系统(有两台或多台服务器互联的网络)中,由于要某台服务器进行维修,需要网络资源和服务暂时重定向到备用系统。在此之后将网络资源和服务器恢复为由原始主机提供的过程,称为自动恢复 4.failsafe:失效安全 Fail-Safe的含义为“失效安全”

分布式 常见的容错机制

做~自己de王妃 提交于 2019-12-13 16:22:59
常见容错机制:failover ,failsafe,failfase ,failback,forking,来源于阿里的定义。 Failover 失败自动切换 当出现失败,重试其它服务器,通常用于读操作(推荐使用)。 重试会带来更长延迟。 Failfast 快速失败 只发起一次调用,失败立即报错,通常用于非幂等性的写操作。 如果有机器正在重启,可能会出现调用失败 。 Failsafe 失败安全 出现异常时,直接忽略,通常用于写入审计日志等操作。 调用信息丢失 可用于生产环境 Monitor。 Failback 失败自动恢复 后台记录失败请求,定时重发。通常用于消息通知操作 不可靠,重启丢失。 可用于生产环境 Registry。 Forking 并行调用多个服务器 只要一个成功即返回,通常用于实时性要求较高的读操作。 需要浪费更多服务资源 。 Broadcast 广播调用,所有提供逐个调用,任意一台报错则报错。通常用于更新提供方本地状态 速度慢,任意一台报错则报错 。 来源: CSDN 作者: CrazySnail_x 链接: https://blog.csdn.net/weixin_40910372/article/details/103527374

SparkStreaming 性能、稳定、容错与语义

你。 提交于 2019-12-06 02:58:22
怎样提高Spark Streaming的性能 1、创建多个接收器         待定:: 2、调节每一个batch interval的数据块的数量,其实就是调整上面第二个问题中提到的配置spark.streaming.blockInterva         待定:: 3、调整Recevier每秒接收数据的速率         待定:: 4、通过repartition这个API来增加并行度         待定:: 5、使用Kryo序列化机制         待定:: 6、使用CMS垃圾收集器         待定:: Spark Streaming的稳定性: BackPressure         待定:: Elastic Scaling         待定:: Spark Streaming是怎样容错的 1、Executor失败容错:Executor的失败会重新启动一个新的Executor,这个是Spark自身的特性。如果Receiver所在的Executor失败了,那么Spark Streaming会在另外一个Executor上启动这个Receiver(这个Executor上可能存在已经接收到的数据的备份) 2、Driver失败的容错:如果Driver失败的话,那么整个Spark Streaming应用将会全部挂掉。所以Driver端的容错是非常重要的

【转】微服务(概念篇):什么是微服务?一篇文章让你彻底搞明白

若如初见. 提交于 2019-12-05 19:19:44
目录 前言 一、微服务介绍 1.什么是微服务 2. 微服务由来 3. 为什么需要微服务? 3.1 早期的单体架构带来的问题 3.2 微服务与单体架构区别 3.3 微服务与SOA区别 4. 微服务本质 5. 什么样的项目适合微服务 6. 微服务折分与设计 6.1 微服务设计原则 7. 微服务优势与缺点 7.1 特性 7.2 特点 7.3 缺点 8. 微服务开发框架 9. Sprint cloud 和 Sprint boot区别 二、微服务实践先知 1. 客户端如何访问这些服务?(API Gateway) 2. 服务之间如何通信?(服务调用) 3. 这么多服务怎么查找?(服务发现) 4. 服务挂了怎么办? 5. 微服务需要考虑的问题 三、微服务重要部件 1. 微服务基本能力 2. 服务注册中心 2.1 zookeeper服务注册和发现 3. 负载均衡 3.1 负载均衡的常见策略 4. 容错 4.1 容错策略 5. 熔断 6. 限流和降级 7. SLA 8. API网关 9. 多级缓存 10. 超时和重试 11. 线程池隔离 12. 降级和限流 13. 网关监控和统计 前言 到底什么是微服务?为什么要用微服务?微服务主要来做一些什么?微服务有哪些优势?什么样的服务属于微服务?本文所有资料来源网络,我只是整理一下,总结一下。仅供参考。 一、微服务介绍 1.什么是微服务 在介绍微服务时

细看名字服务中心

孤街醉人 提交于 2019-12-04 13:32:23
名字服务就是服务间“你寻我,我寻你”的爱情游戏,因为它总是为彼此找到最佳"伴侣",不是么? 在之前的文章中多次提到名字服务这个概念,也很多人在问这是个什么东西?为什么我老是提起它?首先因为太重要了,直接决定着运维自动化平台的水平、简单与复杂;其次我做这么多年运维,对名字服务有着很深的情节(可能觉得它很酷),终于这次在自己负责的业务里面落地,也有了实践的经验,避免来虚的;最后,它能把技术架构对可运维性的理念表现得淋漓尽致,是一个自维护架构的重要标尺。 在11年左右,当时也提出基于某统一的server框架自动构建名字服务中心的做法,把容器服务和腾讯的一个调度中心L5(后面会介绍)进行集成,降低运维工作量。也许是因为当年自己思考不成熟和全面,最终这个方案没有走向实施,有些可惜。不过在目前的单位,遇到一位大牛,最初提出想法,上面支持就开始做了,运维就需要这样的研发拍档。 首先需要讲几个概念: 1、服务 是一个、组、类功能或者接口的业务描述,比如说注册用户、发送短信。转化到技术层面上就会对应一个api或者接口,此时会触发一次远程的RPC调用,函数内的功能不是。 2、服务实例 服务实例是服务对应的一组IP和端口的简称。当前端服务需要请求后端某服务的时候,此时需要先找到对应的服务运行实例,也就是进程和端口,然后才能建立connection,从而发起请求。 3、服务注册

nginx upstream 容错机制

给你一囗甜甜゛ 提交于 2019-12-03 11:54:11
1. 摘要 (1) 结论 详细描述了nginx记录失效节点的6种状态(time out、connect refuse、500、502、503、504,后四项5XX需要配置proxy_next_upstream中的状态才可以生效)、失效节点的触发条件和节点的恢复条件、所有节点失效后nginx会进行恢复并进行重新监听。 (2) Nginx 负载均衡方式介绍 Nginx的负载均衡方式一共有4种:rr(轮询模式)、ip_hash、fair、url_hash。 (3) Ngxin负载均衡和相关反向代理配置内容 Nginx负载均衡和与容错相关的反向代理的配置。 (4) 获取后端流程 后端server的自动容错流程图。 (5) 测试环境和测试结果 针对几种错误方式进行自动容错测试。 2. 结论 (1) nginx 判断节点失效状态 Nginx 默认判断失败节点状态以connect refuse和time out状态为准,不以HTTP错误状态进行判断失败,因为HTTP只要能返回状态说明该节点还可以正常连接,所以nginx判断其还是存活状态;除非添加了proxy_next_upstream指令设置对404、502、503、504、500和time out等错误进行转到备机处理,在next_upstream过程中,会对fails进行累加,如果备用机处理还是错误则直接返回错误信息

亿级Web系统的容错性建设实践

半腔热情 提交于 2019-12-03 07:34:58
容错其实是系统健壮性的重要指标之一,而本文会主要聚焦于“容错”能力的实践,希望对做技术的同学有所启发和帮助。 (备注:QQ会员活动运营平台,后面统一简称AMS) 一、 重试机制 最容易也最简单被人想到的容错方式,当然就是“失败重试”,总而言之,简单粗暴!简单是指它的实现通常很简单,粗暴则是指使用不当,很可能会带来系统“雪崩”的风险,因为重试意味着对后端服务的双倍请求。 1. 简单重试 我们请求一个服务,如果服务请求失败,则重试一次。假设,这个服务在常规状态下是99.9%的成功率,因为某一次波动性的异常,成功率下跌到95%,那么如果有重试机制,那么成功率大概还能保持在99.75%。而简单重试的缺陷也很明显,如果服务真的出问题,很可能带来双倍流量,冲击服务系统,有可能直接将服务冲垮。而在实际的真实业务场景,往往更严重,一个功能不可用,往往更容易引起用户的“反复点击”,反而制造更大规模的流量冲击。比起服务的成功率比较低,系统直接被冲击到“挂掉”的后果明显更严重。 简单重试,要使用在恰当的场景。或者,主动计算服务成功率,成功率过低,就直接不做重试行为,避免带来过高的流量冲击。 2. 主备服务自动切换 既然单一服务的重试,可能会给该带来双倍的流量冲击,而最终导致更严重的后果,那么我们不如将场景变为主备服务的自动重试或者切换。例如,我们搭建了两套获取openid的服务,如果服务A获取失败

常见容错机制:failover、failfast、failback、failsafe

ⅰ亾dé卋堺 提交于 2019-12-03 01:56:39
1.failover:失效转移 Fail-Over的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,可以拿备Master做主使用 2.failfast:快速失败 从字面含义看就是“快速失败”,尽可能的发现系统中的错误,使系统能够按照事先设定好的错误的流程执行,对应的方式是“fault-tolerant(错误容忍)”。以JAVA集合(Collection)的快速失败为例,当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常(发现错误执行设定好的错误的流程),产生fail-fast事件。 3.failback:失效自动恢复 Fail-over之后的自动恢复,在簇网络系统(有两台或多台服务器互联的网络)中,由于要某台服务器进行维修,需要网络资源和服务暂时重定向到备用系统。在此之后将网络资源和服务器恢复为由原始主机提供的过程,称为自动恢复 4.failsafe:失效安全 Fail-Safe的含义为“失效安全”