博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
009 微服务容错机制
阅读量:5339 次
发布时间:2019-06-15

本文共 844 字,大约阅读时间需要 2 分钟。

一 概述

在微服务的调用过程之中,可能会出现下面的问题:

[1]当一个微服务调用另外一个微服务的时候,如果被调用的微服务出现问题,就会导致调用者出现问题,如果调用的关系是级联的,就会出现级联错误,发生服务雪崩.

[2]微服务如果出现共享线程池的情况,一个微服务出现问题,就会影响在此线程池之中的另外线程.

解决方法:

在整个微服务架构之中,通常存在下面的三种解决方式

[1]超时机制:如果一个方法调用出现延迟的情况,立马发生超时错误,放置微服务的调用堆积,造成系统资源耗尽.

[2]线程隔离:不同的微服务之间使用不同的线程池,防止一个线程池的原因,导致多个微服务出现资源的问题.

[3]熔断器模式:本质上说,熔断器是一个快速失败的机制,当出现调用问题的时候,立马结束调用,这里面可以使用超时机制进行规避.

   当多次错误发生的时候,就认为这个服务不可用,进行快速失败.熔断器会一个检测的功能,当发现微服务可用,就打开熔断器,进行正常的微服务的调用.

在springcloud之中,使用hystrix组件帮助我们实现微服务的容错机制.

从本质上,熔断器就是一个使用快速失败解决资源分配的问题.

 

二 .Hystrix提供的功能

[1]failback机制:一旦发生微服务的调用失败,直接进行fallback机制.默认情况下,histrix使用异常机制实现,当然我们也可以使用fallback方法进行容错返回.

[2]超时机制:一旦方法调用出现超时,立马认为微服务失败,直接进入fallback机制.

[3]线程隔离:不同的方法调用进入到不同的线程之中,这样彼此的微服务相互的影响降到最低.

[4]熔断器:一旦微服务多次失败,直接进入到fallback机制,不再做无谓的尝试.同时Hystrix提供半开模式,允许进行一些微服务的调用的尝试,当成功的几率符合设置,熔断器就关闭,进行正常的方法调用.

转载于:https://www.cnblogs.com/trekxu/p/10470236.html

你可能感兴趣的文章
如何在工作中快速成长?阿里资深架构师给工程师的10个简单技巧
查看>>
WebSocket 时时双向数据,前后端(聊天室)
查看>>
关于python中带下划线的变量和函数 的意义
查看>>
linux清空日志文件内容 (转)
查看>>
安卓第十三天笔记-服务(Service)
查看>>
Servlet接收JSP参数乱码问题解决办法
查看>>
【bzoj5016】[Snoi2017]一个简单的询问 莫队算法
查看>>
Ajax : load()
查看>>
MySQL-EXPLAIN执行计划Extra解释
查看>>
Zookeeper概述
查看>>
Zookeeper一致性级别
查看>>
Linux远程登录
查看>>
Linux自己安装redis扩展
查看>>
HDU 1016 Prime Ring Problem(dfs)
查看>>
C#中结构体与字节流互相转换
查看>>
session和xsrf
查看>>
跟随大神实现简单的Vue框架
查看>>
Linux目录结构
查看>>
LeetCode-Strobogrammatic Number
查看>>
luoguP3414 SAC#1 - 组合数
查看>>