Hystrix降级、熔断、超时配置优化-创新互联
文章目录
降级:在服务器压力剧增的情况下,根据实际业务情况和流量,对一些服务和页面不处理或简单处理,从而释放服务器资源保证核心交易正常运作。
熔断:熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施,所以很多地方把熔断亦称为过载保护。
限流:限制服务/接口访问的流量。可以从总量+速率进行处理
隔离:保证其中某个服务坏掉,不会影响到其他服务。线程池/信号量隔离模式
幂等性验证: 可能因为网络抖动或其他位置原因,服务端在短时间内可能会受到多笔相同的交易
超时机制:一种是请求的等待超时,一种是请求运行超时。
降级、熔断、隔离属于出现问题后的处理机制。限流属于预防。10年积累的做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有南平免费网站建设让你可以放心的选择与我们合作。1.服务降级 1.1 服务降级的两种方式 fallback fallbackFactory
分享标题:Hystrix降级、熔断、超时配置优化-创新互联
文章起源:http://lswzjz.com/article/dgsijg.html
- 1.服务降级
- 1.1 服务降级的两种方式
- fallback
- fallbackFactory
- 1.2 fallback使用
- 1.3 fallbackFactory使用
- 2.hystrix线程池配置和超时机制
降级:在服务器压力剧增的情况下,根据实际业务情况和流量,对一些服务和页面不处理或简单处理,从而释放服务器资源保证核心交易正常运作。
熔断:熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施,所以很多地方把熔断亦称为过载保护。
限流:限制服务/接口访问的流量。可以从总量+速率进行处理
隔离:保证其中某个服务坏掉,不会影响到其他服务。线程池/信号量隔离模式
幂等性验证: 可能因为网络抖动或其他位置原因,服务端在短时间内可能会受到多笔相同的交易
超时机制:一种是请求的等待超时,一种是请求运行超时。
降级、熔断、隔离属于出现问题后的处理机制。限流属于预防。10年积累的做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有南平免费网站建设让你可以放心的选择与我们合作。1.服务降级 1.1 服务降级的两种方式 fallback fallbackFactory
两者都能实现降级,但fallbackFactory能得到服务降级的原因。
1.2 fallback使用FeignAPI和Fallback代码如下:
@FeignClient(name = "shared-geoip", fallback = GeoIPRemote.HystrixFallback.class)
public interface GeoIPRemote {
@RequestMapping(method = RequestMethod.GET, value = "/geo/get_ip_info")
ResponseMessagegetIpInfo(@RequestParam("host") String host);
@Component
class HystrixFallback implements GeoIPRemote {
@Override
public ResponseMessagegetIpInfo(String ip) {
return ResponseMessage.buildFail(ResponseCode.SERVICE_BUSY, "IP分析服务");
}
}
}
当服务降级的时候,fallback中只能打印此次调用失败的log,而无法打印详细的异常信息,这明显不符合我们的要求。
1.3 fallbackFactory使用@FeignClient(name = "shared-geoip", fallbackFactory = GeoIPRemote.HystrixFallbackFactory.class)
public interface GeoIPRemote {
@RequestMapping(method = RequestMethod.GET, value = "/geo/get_ip_info")
ResponseMessagegetIpInfo(@RequestParam("host") String host);
@Component
class HystrixFallbackFactory implements FallbackFactory{
@Override
public GeoIPRemote create(Throwable throwable) {
//此处可以得知异常原因,比如远程服务掉线,服务异常等原因
LogUtils.error(throwable, "errorMsg:{}", throwable.getMessage());
return host ->ResponseMessage.buildFail(ResponseCode.SERVICE_BUSY, "IP分析服务");
}
}
}
2021-06-10 11:14:22.832 [INFO BEGIN] [PollingServerListUpdater-0]:com.netflix.config.ChainedDynamicProperty - [checkAndFlip:115] Flipping property: shared-geoip.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647 [INFO END]
2021-06-10 11:14:22.832.912 [ERROR BEGIN] [hystrix-shared-geoip-1]:c.t.t.p.r.h.HystrixFallbackFactory - [create:26] Connection refused: connect executing POST http://shared-geoip/geo/get_ip_info [ERROR END]
2020-10-30 15:14:22.912 [ERROR BEGIN] [hystrix-shared-geoip-1-1]:c.t.t.p.r.h.FallbackFactory- [GeoIPRemote :60] errorMsg:Connection refused [ERROR END]
当服务降级的时候,fallbackFactory中既打印此次调用失败的log,也可以打印详细的异常信息,符合要求。
2.hystrix线程池配置和超时机制重点关注hystrix的隔离策略有两种:threadpool和semaphore
对比如下:
应用提供外网访问,对于高并发下、机器性能比较好的情况下推荐使用threadpool隔离方式。
详细配置如下,调用方微服务和网关服务可根据实际情况进行适当修改。
feign:
hystrix:
enabled: true #开启降级
ribbon:
#Ribbon允许大连接数,即所有后端微服务实例请求并发数之和的大值。
MaxTotalConnections: 500
#单个后端微服务实例能接收的大请求并发数
MaxConnectionsPerHost: 500
#建议设置超时时间,以免因为等待时间过长造成请求处理失败(一)
#Http请求中的socketTimeout
ReadTimeout: 5000
#Http请求中的connectTimeout
ConnectTimeout: 10000
hystrix:
threadpool:
default:
coreSize: 20 #核心线程数量
maximumSize: 100 #大线程数量
allowMaximumSizeToDivergeFromCoreSize: true
command:
default:
fallback:
isolation:
thread:
timeoutInMilliseconds: 10000 #命令执行超时时间
execution:
isolation:
thread:
timeoutInMilliseconds: 10000 #请求的超时
timeout:
enabled: true #断路器超时设置
circuitBreaker:
requestVolumeThreshold: 1000 #设置熔断器失败的个数
配置解释链接:https://blog.csdn.net/harris135/article/details/77879148?utm_source=debugrun&utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:Hystrix降级、熔断、超时配置优化-创新互联
文章起源:http://lswzjz.com/article/dgsijg.html