网站怎么做h5支付,南京网站南京网站开发,优惠券网站开发,枣庄做网站建设的公司1、分布式服务遇到的问题
服务可用性问题 服务可用性场景 服务雪崩效应 因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程#xff0c;就叫服务雪崩效应导致服务不可用的原因#xff1a; 在服务提供者不可用的时候#xff0c;会出现大量重试的情况就叫服务雪崩效应导致服务不可用的原因 在服务提供者不可用的时候会出现大量重试的情况用户重试、代码逻辑重试这些重试最终导致进一步加大请求流量。所以归根结底导致雪崩效应的最根本原因是大量请求线程同步等待造成的资源耗尽。当服务调用者使用同步调用时, 会产生大量的等待线程占用系统资源。一旦线程资源被耗尽,服务调用者提供的服务也将处于不可用状态, 于是服务雪崩效应产生了。 解决方案 常见的容错机制
超时机制 在不做任何处理的情况下服务提供者不可用会导致消费者请求线程强制等待而造成系统资源耗尽。加入超时机制一旦超时就释放资源。由于释放资源速度较快一定程度上可以抑制资源耗尽的问题。服务限流 设置阈值操作临界值不再进行向后端请求.隔离 每当向服务发起一个请求时就是会发起一个http请求,每一个http请求就要开启一个线程然后等待服务返回信息这容易导致线程的堆积所以就可以用http的URI作为一个标识然后相同的URI可以开启一个线程池然后线程池中限定线程数这样就可以设置拒绝策略当线程池满了就可以快速的抛出异常或者拒绝请求用线程池做到线程隔离来达到限流。服务熔断 熔断就是有一个阈值向服务发起请求后如果不成功就会记录次数然后当连续失败次数达到阈值时下次请求的时候就会直接把这个服务停止。请求有三种状态可以请求开不可请求关还有一个中间状态相当于半开状态半开状态是什么意思呢就是可以尝试着去请求就可以在关闭状态后一段时间发一个请求尝试一下是否可以请求成功如果不成功继续保持关闭状态如果请求成功则变成开放状态。服务降级兜底 降级其实就相当于当我们向一个服务发起请求当请求超时了就会把这次请求记录到服务中然后就会尝试向其他服务发请求如果还没成功就对这次请求进行处理怎么处理取决于业务需求如就相当于try catch一样的逻辑当然Sentinel底层使用aop来实现的。
2、Sentinel: 分布式系统的流量防卫兵
https://sentinelguard.io/zh-cn/
2.1 Sentinel 介绍
随着微服务的流行服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件主要以流量为切入点从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel具有以下特征:
丰富的应用场景 Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景例如秒杀即突发流量控制在系统容量可以承受的范围、消息削峰填谷、实时熔断下游不可用应用等。完备的实时监控 Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据甚至 500 台以下规模的集群的汇总运行情况。广泛的开源生态 Sentinel 提供开箱即用的与其它开源框架/库的整合模块例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。完善的 SPI 扩展点 Sentinel 提供简单易用、完善的 SPI 扩展点。您可以通过实现扩展点快速的定制逻辑。例如定制规则管理、适配数据源等
2.2Sentinel和Hystrix对比
https://github.com/alibaba/Sentinel/wiki/Sentinel-%E4%B8%8E-Hystrix-%E7%9A%84%E5%AF%B9%E6%AF%94