当前位置: 首页 > news >正文

网站设计行业前景常用的五种网络营销工具

网站设计行业前景,常用的五种网络营销工具,做是么网站,wordpress自定义播放器目录 1 基本介绍2 Hystrix信号量和线程池区别2.1 信号量模式2.2 线程池模式2.3 注意 3 Sentinel介绍 1 基本介绍 Sentinel 和 Hystrix 的原则是一致的: 当检测到调用链路中某个资源出现不稳定的表现,例如请求响应时间长或异常比例升高的时候,则对这个资源…

目录

  • 1 基本介绍
  • 2 Hystrix信号量和线程池区别
    • 2.1 信号量模式
    • 2.2 线程池模式
    • 2.3 注意
  • 3 Sentinel介绍


1 基本介绍

在这里插入图片描述

Sentinel 和 Hystrix 的原则是一致的: 当检测到调用链路中某个资源出现不稳定的表现,例如请求响应时间长或异常比例升高的时候,则对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联故障。

Sentinel 对这个问题采取了两种手段:

通过并发线程数进行限制
和资源池隔离的方法不同,Sentinel 通过限制资源并发线程的数量,来减少不稳定资源对其它资源的影响。这样不但没有线程切换的损耗,也不需要您预先分配线程池的大小。当某个资源出现不稳定的情况下,例如响应时间变长,对资源的直接影响就是会造成线程数的逐步堆积。当线程数在特定资源上堆积到一定的数量之后,对该资源的新请求就会被拒绝。堆积的线程完成任务后才开始继续接收请求。

针对慢调用和异常对资源进行降级
除了对并发线程数进行控制以外,Sentinel 还可以根据响应时间和异常等不稳定因素来快速对不稳定的调用进行熔断。当依赖的资源出现响应时间过长后,所有对该资源的访问都会被直接拒绝,直到过了指定的时间窗口之后才重新渐进式地恢复。

系统自适应保护

Sentinel 同时提供系统维度的自适应保护能力。防止雪崩,是系统防护中重要的一环。当系统负载较高的时候,如果还持续让请求进入,可能会导致系统崩溃,无法响应。在集群环境下,网络负载均衡会把本应这台机器承载的流量转发到其它的机器上去。如果这个时候其它的机器也处在一个边缘状态的时候,这个增加的流量就会导致这台机器也崩溃,最后导致整个集群不可用。

针对这个情况,Sentinel 提供了对应的保护机制,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。

而Hystrix内部提供了两种模式执行逻辑:信号量、线程池。

在这里插入图片描述

img

2 Hystrix信号量和线程池区别

来自hystrix官网
默认情况下,Hystrix使用线程池模式。
不过两者有什么区别,在实际场景中如何选择?

img

如果要使用信号量模式,需要配置参数execution.isolation.strategy =ExecutionIsolationStrategy.SEMAPHORE.

2.1 信号量模式

在该模式下,接收请求和执行下游依赖在同一个线程内完成,不存在线程上下文切换所带来的性能开销,所以大部分场景应该选择信号量模式,但是在下面这种情况下,信号量模式并非是一个好的选择。

比如一个接口中依赖了3个下游:serviceA、serviceB、serviceC,且这3个服务返回的数据互相不依赖,这种情况下如果针对A、B、C的熔断降级使用信号量模式,那么接口耗时就等于请求A、B、C服务耗时的总和,无疑这不是好的方案。

另外,为了限制对下游依赖的并发调用量,可以配置Hystrix的execution.isolation.semaphore.maxConcurrentRequests,当并发请求数达到阈值时,请求线程可以快速失败,执行降级。

img

实现也很简单,一个简单的计数器,当请求进入熔断器时,执行tryAcquire(),计数器加1,结果大于阈值的话,就返回false,发生信号量拒绝事件,执行降级逻辑。当请求离开熔断器时,执行release(),计数器减1。

2.2 线程池模式

在该模式下,用户请求会被提交到各自的线程池中执行,把执行每个下游服务的线程分离,从而达到资源隔离的作用。当线程池来不及处理并且请求队列塞满时,新进来的请求将快速失败,可以避免依赖问题扩散。

在信号量模式提到的问题,对所依赖的多个下游服务,通过线程池的异步执行,可以有效的提高接口性能。

优势

  • 减少所依赖服务发生故障时的影响面,比如ServiceA服务发生异常,导致请求大量超时,对应的线程池被打满,这时并不影响ServiceB、ServiceC的调用。
  • 如果接口性能有变动,可以方便的动态调整线程池的参数或者是超时时间,前提是Hystrix参数实现了动态调整。

缺点

  • 请求在线程池中执行,肯定会带来任务调度、排队和上下文切换带来的开销。
  • 因为涉及到跨线程,那么就存在ThreadLocal数据的传递问题,比如在主线程初始化的ThreadLocal变量,在线程池线程中无法获取

2.3 注意

因为Hystrix默认使用了线程池模式,所以对于每个Command,在初始化的时候,会创建一个对应的线程池,如果项目中需要进行降级的接口非常多,比如有上百个的话,不太了解Hystrix内部机制的同学,按照默认配置直接使用,可能就会造成线程资源的大量浪费。

3 Sentinel介绍

Spring cloud Alibaba Sentinel:https://blog.csdn.net/ZGL_cyy/article/details/130874410

SpringCloud Sentinel实战限流熔断降级应用:https://blog.csdn.net/ZGL_cyy/article/details/130874410

SpringCloud Sentinel集成Gateway和实时监:https://blog.csdn.net/ZGL_cyy/article/details/130874653

http://www.ds6.com.cn/news/71598.html

相关文章:

  • 建站报告2000字2345网址导航应用
  • 个人网站设计介绍文字网络工程师培训一般多少钱
  • 翻译建设网站品牌营销策略分析论文
  • 专做polo衫的网站综合搜索引擎
  • jsp网站服务建设是什么今日预测足球比分预测
  • angularjs 做电商网站百度收录提交入口地址
  • 做网站价格多少百度推广开户价格
  • node可以做电商网站么地推接单平台app排行榜
  • 小型企业网站建设旅游景点网论文网站排名优化客服
  • 压铸东莞网站建设上海app开发公司
  • srcache缓存wordpressseo咨询
  • wordpress 打开非常慢百度seo关键词优化公司
  • 云南微网站搭建百度seo优化工具
  • 网站外部链接建设分析大数据营销系统多少钱
  • 做网站什么价格如何做好企业推广
  • 百度关键词网站怎么做网络软文营销案例3篇
  • 汉中专业网站建设价格seo在线教学
  • 梅州市住房和城乡建设局官方网站seo标题关键词优化
  • 做化妆品的网站北京seo业务员
  • 如何把自己写的html变成网站武汉seo结算
  • 广州网站建设gzqiyi快速的网站设计制作
  • amazon国外网站app开发成本预算表
  • wordpress qps佛山seo联系方式
  • 做网站用的到minitab么怎么搭建一个网站
  • 旅游网站的市场需求怎么做介绍网络竞价托管公司
  • 盘县网站建设刷粉网站推广马上刷
  • 仙桃网站建设公司如何线上推广自己产品
  • 西安网站建设公司哪有关键词排名优化易下拉技术
  • 电商网站建设与管理推广普通话手抄报图片
  • 佛山网站建设网站制作公司哪家好友情链接的检查方法