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

水利部精神文明建设指导委员会网站建站之星网站

水利部精神文明建设指导委员会网站,建站之星网站,十大网站有哪些,四川省网站备案在软件架构领域的中文文档、书籍中,经常可以看到“弹性”这个专业术语,但在不同的语境下含义可能会不同。 在英语中,elastic 和 resilient 两个单词都可以翻译为“弹性的”,但是它们在软件架构中代表的含义却完全不同&#xff0c…

在软件架构领域的中文文档、书籍中,经常可以看到“弹性”这个专业术语,但在不同的语境下含义可能会不同。

在英语中,elastic 和 resilient 两个单词都可以翻译为“弹性的”,但是它们在软件架构中代表的含义却完全不同,需要避免混淆。

Elastic

Elastic 代表的“弹性”强调的是可伸缩性

在《Designing Data-Intensive Applications》一书中,对 elastic 的定义:

Some systems are elastic, meaning that they can automatically add computing resources when they detect a load increase, whereas other systems are scaled manually (a human analyzes the capacity and decides to add more machines to the system). An elastic system can be useful if load is highly unpredictable, but manually scaled systems are simpler and may have fewer operational surprises.

翻译:某些系统具有弹性,意味着它检测到负载增加时,可以自动化地增加计算资源。而非弹性的系统则需要手动扩展(人工分析性能并决定向系统中添加更多的机器)。当系统负载很难预测时,弹性系统会非常有用,而手动扩展的系统更加简单,并且可以减少操作上的意外。

Elastic 表示系统可以根据负载情况和相关策略自动调整计算资源,所以也称为 Auto Scaling。例如一个电商应用会在大促时有更大的负载量,则需要自动添加更多的服务器等资源保障系统正常提供服务,而在平时负载量小的时候,则自动减少资源来控制成本。当我们看到“弹性伸缩”这个术语时,要知道这里的“弹性”代表的意思就是 elastic。

例如,Kubernetes 提供了 HorizontalPodAutoscaler,支持 Pod 水平自动扩缩容。阿里云等商业云平台也都提供了类似的弹性伸缩服务(Elastic Scaling Service),可根据负载情况和策略自动调整计算能力(即实例数量)。

Resilient

Elastic 代表的“弹性”强调的是复原能力

在《Designing Data-Intensive Applications》一书中,对 resilient 的定义:

The things that can go wrong are called faults, and systems that anticipate faults and can cope with them are called fault-tolerant or resilient.

翻译:可能出错的事情被称为故障,系统能够预测并应对故障的能力称为容错或弹性。

Resilient 表示系统有容错和故障恢复能力,从而系统具有可靠性。

例如,Java 著名的开源库 Hystrix 的介绍是这样的:

Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

这里的 resilience 当然指的不是弹性伸缩能力,而是容错能力。

除 Hystrix 外,其它开源的容错库:

  • Resilience4j: Resilience4j is a fault tolerance library designed for Java8 and functional programming.
  • Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices.
  • Polly: Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.
  • go-resiliency: Resiliency patterns for golang.
  • Semian: Resiliency toolkit for Ruby for failing fast.

实现 resilient 的策略通常包括断路器(Circuit Breaker)、限流器(Rate Limiter)、重试(Retry)、舱壁(Bulkhead)等,更多可参考:https://github.com/App-vNext/Polly#resilience-policies 。

下面简单介绍常用的几种容错的策略:

  • 重试(Retry):很多错误是短暂的并且可以自动恢复的,对这种问题采用重试策略。
  • 断路器(Circuit Breaker):类似于电路或股市中的“熔断”概念,当系统发生严重故障(大量超时或失败)时,为了避免后续持续不断的请求导致故障系统过载,超时导致网络、线程资源占用,最终产生雪崩,而在一段时间内直接 fail fast(快速失败,即直接返回错误而不再去请求故障的系统模块)。
  • 舱壁(Bulkhead):《泰坦尼克号》电影中有一段对船体的描述:船体包含 16 个相互隔离的水密舱,即使有 4 个水密舱受损进水也能保证船漂浮在海面上。架构设计中舱壁模式参考的就是这种方式,将资源进行隔离,例如可以为调用多个服务的消费者分配每个服务独立的连接池,从而保证一种故障只会影响到其对应的资源,而不会造成级联故障。
  • 限流器(Rate Limiter):通过限流算法(如令牌桶算法、漏桶算法),限制在特定时间段内的执行次数、数据量等指标,从而防止系统过载。
http://www.mmbaike.com/news/105884.html

相关文章:

  • 设计网站首页多少钱做网站需要多少钱
  • 医程通 网站做的太seo排名点击软件
  • 杭州网站建设公司推荐互联网营销平台有哪些
  • 自建网站做跨境电商网络营销比较常用的营销模式
  • 网站首页标题怎么写网站设计与建设
  • 网站开发语言太老职业技能培训平台
  • 网站加入联盟seo咨询茂名
  • 做房产抵押网站需要什么手续昆明长尾词seo怎么优化
  • 网站开发需要java吗珠海网站建设优化
  • 青岛疫情最新动态做seo有什么好处
  • 郑州正规的网站制作价钱常州seo
  • 网站后期维护需要注意什么大连网站seo
  • 本地搭建wordpress出现403搜索引擎优化有哪些要点
  • 淘宝客网站做的好的小红书关键词排名
  • app拉新怎么对接渠道seo内部优化方案
  • seo网站排名优化怎么打开网站
  • 专业外贸网站建设互联网seo是什么
  • 网站关键词怎么选择综合查询
  • 物流官方网站百度seo关键词排名优化工具
  • 怀化公积金网站如何创建网址
  • 做私彩网站需注意什么竞价广告代运营
  • 南宁公司网站建设宁波网站建设方案推广
  • 沈阳专门代做网站的百度云盘登录电脑版
  • wap网站开发语言江西优化中心
  • 遂宁做网站网络推广免费网站
  • 唐山建设网站建站com域名注册
  • 做班级网站代码seo点击排名软件哪家好
  • 网站建设的原则有哪些免费的seo
  • wordpress4.5.3免费中文主题站内优化主要从哪些方面进行
  • wordpress 排行榜 页面seo外链平台热狗