反向压力

大家好,我是鱼皮,今天分享一个实用的编程小知识 —— 反向压力。

在介绍反向压力前,我们先聊聊什么是压力?

什么是压力?

我是一个打工人,日常工作就是听产品经理的话,写代码做需求。

正常打工

正常情况下,我每天能写 500 行代码,一周能做完 1 个需求就不错了。

但如果某天,领导突然发话了:对手公司已经荣华富贵了,我们也得抓紧,发财发财发财!

于是产品经理收到了更多来自领导的需求,也就给我安排了更多的需求。但我毕竟能力有限,每天只能写那么几行代码,因此只能每天加班苦不堪言,整个人处于超负荷状态,感受到了 压力

有压力了

那把这个场景类比到程序系统中,就是服务调用方对服务提供者的压力,或者说是请求方对处理方的压力。每个服务单位时间的处理能力是有限的,一旦请求量过大,服务的压力就会逐渐增大(可能是内存等资源不断被占用),严重时会导致服务停机。

服务调用

也可以把整个过程理解为泳池蓄水吧,进水管比排水管的水量更大,那泳池一会儿就水满溢出了。

了解什么是压力后,反向压力就很简单了。

什么是反向压力?

先接着做个比喻,假如领导和产品经理要给我增加过多的工作量,那我干嘛要傻傻的默默忍受呢?不是还有其他选择么?

  1. 跟上级们反映一下,工作量太多

  2. 实在欺人太甚的话,直接甩下一句话:劳资不干了!

当然,对于领导来说,可能也会给你两种结果:

  1. 倾听你的反馈,动态调整你的工作量,先让你做高优先级的需求,其他的排到后面慢慢做。

  2. 爱干不干,不干滚蛋!

显然第一种情况比较好对吧。这便是反向压力(Back Pressure),又叫 背压

类比到程序系统中,就是根据服务处理方的处理能力和状态动态地调整调用方的请求频率。

可以是处理方 主动通知 调用方:哦我压力太大了、活干不完了!然后调用方可以减少请求频率。

也可以是调用方 被动监测 处理方:看见员工开始摸鱼了,肯定是工作不饱和!然后调用方可以逐渐增大请求频率。

反向压力

反向压力的好处

反向压力实际上是 流量控制 的一种解决方案,可以使得调用方和处理方的能力相匹配,从而保护系统的各节点处于持续的正常工作状态。

如果不使用反向压力,只能人为去评估系统中各个节点能承受的压力,再给每个服务调用者的调用频率加一个 固定 的限制。限制设小了,就很容易产生资源浪费;限制设大了,服务又可能承受不住,导致挂掉或被剔除。

而且最致命的是,系统中的节点变化是不可控的,可能现在的系统状态很稳定,但如果突然多了个服务调用方,就又增加了服务提供者的压力。而这种压力没有被感知到,才是最恐怖的!

新服务调用方

因此,如今动态流控、甚至是智能流控也被应用的越来越广泛。

反向压力的应用

有流量控制的需求,就会有反向压力的身影。

我是从一本 实时流式计算 的书籍中第一次真正了解到反向压力的概念,这也是它应用最广泛的领域,像几个流处理框架 Flink、Spark Streaming、Storm 中,都有相应的反向压力实现。

反向压力的概念也被广泛应用于 反应式编程(Reactive Programming)中,比如 Spring WebFlux、RxJava 框架等,可以实现异步非阻塞、低延迟、高吞吐量的处理系统。

此外,反向压力的思想也很实用,比如 TCP 网络协议的流量和拥塞控制中,实际是由发送方和接收方共同确认数据包滑动窗口的大小,从而控制传输包的速率。

TCP 协议数据包传输

因此,反向压力还是很值得学习的!

至于它如何实现,还是有很大学问的,不同框架的实现方式也不同,大家可以自行了解。(等我学好了再分享哈哈)



以上就是本期分享。

我是鱼皮,学到的话还请 点赞 + 在看 支持,这是我持续更新的最大动力!????

往期推荐

10 万粉丝啦!感谢!

女朋友问我 LB 是谁?

灵魂画手 - 老鱼皮

鱼皮怒肝 Java 学习路线一条龙!

我两年的坚持,值了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AVL树----java

AVL树----java AVL树是高度平衡的二叉查找树 1.单旋转LL旋转 理解记忆&#xff1a;1.在不平衡的节点的左孩子的左孩子插入导致的不平衡&#xff0c;所以叫LL private AVLTreeNode<T> leftLeftRotation(AVLTreeNode<T> k2) {AVLTreeNode<T> k1;k1 k2.left;k2…

其实你女朋友也不是很爱你...

1 你玩她口红化妆品试试▼2 我妈介绍的相亲对象优点&#xff1a;每天主动问早缺点&#xff1a;每天只问早▼3 女儿过度高估老爸了▼4 国际油价暴跌全军出击买买买▼5 有人喜欢我吗&#xff1f;我爱吃炸鸡▼6 有厕纸的那部分人还有全球百分之50的双黄连▼7 其实生物书比较…

文末有彩蛋 | 第四周课程回顾与总结

我们在前三周的课程上&#xff08;第一周、第二周、第三周&#xff09;&#xff0c;系统讲授了 FOSS 和 COSS 的课程内容&#xff0c;第四周&#xff0c;我们开始进入 OSPO&#xff08;开源项目办公室&#xff09;的部分。本导学班在调研全球开源教育与课程的基础上&#xff0c…

win10 软路由_「保姆级」万晓博带你用软路由搭建家庭网络中心第1节-准备工作...

本章前言&#xff1a;  去年无意中在群我的一个群里大佬提起过软路由&#xff0c;那时候对这个需求并不是很大&#xff0c;所以对软路由只是名字概念而已&#xff0c;但是后面群里就一软路由这个话题 炒起来了&#xff0c;有的人说软路由就是利用自己闲置设备(PC笔记本)的或者…

【转】构建Android平台Google Map应用

http://www.moandroid.com/?p1360 Android 的新版本提供了的功能&#xff0c;通过这段视频&#xff0c;大家可以先简单了解下&#xff1a; Android 提供的地图&#xff08;Map&#xff09;功能可能是广大开发者非常关心的一个部分。到目前为止&#xff0c;开发内嵌式地图应用的…

将虚拟机转换成模板

在制作模板前&#xff0c;先要准备一个干净的操作系统&#xff0c;或者安装上经常使用的软件在虚拟机中&#xff0c;安装好后&#xff0c;将其正常关机&#xff0c;之后就可以转换成模板了。转换后的虚拟机将不会在主机管理中看到&#xff0c;而只能在模板中看到。克隆转换时克…

假如你学过高数,那你这一辈子都不会忘记这个人

▲ 点击查看2020年3月&#xff0c;菲列兹伦敦奖评奖委员会宣布&#xff0c;2020年度菲列兹伦敦奖将授予三位科学家&#xff0c;除开美国的 Vinokur 博士、以及德国的Steglich 教授以外&#xff0c;最后一位就是清华大学副校长、北京量子信息科学研究院院长薛其坤院士。薛其坤院…

.Net Core with 微服务 - 分布式事务 - TCC

上一次我们讲解了分布式事务的 2PC、3PC 。那么这次我们来理一下 TCC 事务。本次还是讲解 TCC 的原理跟 .NET 其实没有关系。TCC Try 准备阶段&#xff0c;尝试执行业务Confirm 完成业务Cancel 回滚准备阶段的业务TCC 事务其实是 2PC 的一个扩展。上一次我们说了 2PC &#xff…

第10章-管理Hadoop集群-hadoop 安全模式相关知识点

为什么80%的码农都做不了架构师&#xff1f;>>> 1、namenode启动时&#xff0c;namenode节点都做了哪些动作&#xff1f;fsimage和edits有什么变化&#xff1f; 2、namenode什么时候开始监听RPC和HTTP请求&#xff1f; namenode启动时&#xff0c;首先将映像文件(f…

oracle挂证多少钱一个月_惊呆,一条sql竟然把Oracle搞挂了

一条sql就能把oracle搞挂了&#xff0c;真的是不敢相信啊&#xff0c;前几天生产上确实出现了这样一个故障&#xff0c;我们来一起做一个事件回放。系统介绍系统架构见下图&#xff1a;fileapplication1和application2是一个分布式系统中的2个应用&#xff0c;application1连接…

linux图形界面鼠标变成小手_加载Linux系统,树莓派变身桌面电脑

开始正文前&#xff0c;我们想听听娃说了什么操作系统&#xff0c;英文名叫做Operation System&#xff0c;简写为OS&#xff0c;是电子设备运行的基础软件&#xff0c;按运行的设备类型来分&#xff0c;操作系统分为手机操作系统&#xff0c;桌面电脑操作系统和服务器操作系统…

二叉查找树转换成有序的双向链表

首先对于二叉查找树的定义和性质&#xff0c;以及如何得到二叉查找树某个节点的子树下的最大值和最小值和插入一个值的内容可以参考这两篇文章&#xff1a; &#xff08;1&#xff09;http://www.cnblogs.com/chenping-987123/archive/2010/09/25/1834341.html &#xff08;2&a…

就你这个求婚态度,能嫁给你才怪!

1 兄弟&#xff01;哪有求着婚还走神的&#xff1f;&#xff01;▼2 喝奶茶专用口罩&#xff01;▼3 把广东茶楼的菜都点一遍是什么体验&#xff1f;▼4 你觉不觉得这个门锁有点像托马斯的小火车▼5 手里的塑料袋像极了塑料兄弟情▼6 小朋友看《喜羊羊》看到的是坏人的愚…

Remoting and MSMQ 结合做的一个DEMO

真的非常感谢CnBlogs.com,因为有很多教程里写的知识点并不全面,而且也没附带例子.通过这里我学习到了很多很多.希望网站能越办越好哦.下面是我学习分布式开发时写的一个小demo,当然功能有限,技术也很低.希望大师们能拍拍砖,不吝赐教.呵呵软件运行的一个截图下面说说流程吧,1:利…

再聊一次值类型和引用类型

C#值类型&#xff0c;作为函数形参&#xff0c;形参被修改&#xff0c;不影响原值。这是我们在初始学习编程时需要记住的内容&#xff0c;我们也是一直这样践行的。先说结论&#xff1a;这是不准确的。为什么提出这样看似很浅显的问题&#xff0c;是因为有次我在使用ArraySegme…

java+字节码工具64位_jclasslib 下载-jclasslib 32位64位(java字节码查看工具) 5.1 官方版 - 河东下载站...

jclasslib是款免费的开源java字节码的查看工具&#xff1b;它支持进行查看您需要进行使用汉字运用到的Java字节码&#xff0c;并且还拥有一个的类库来让开发者进行读取&#xff0c;包括了修改、对JavaClass文件、字节码的写入等&#xff1b;用户这进行使用的过程中&#xff0c;…

ado filter 多条记录_注意!武汉江南中心绿道武九线综合管廊工程开工,青山区多条道路通行规则有变...

楚天都市报10月29日(记者吴昌华 通讯员 李佳 陈菲)今日记者从武汉交管部门获悉&#xff0c;本周六&#xff0c;10月31日&#xff0c;武汉市江南中心绿道武九线综合管廊工程开始施工&#xff0c;青山区多条道路通行规则有变&#xff0c;部分道路禁止通行。交管部门提供详细绕行建…

深度学习框架再次升级,它们都有什么优点?

全世界只有3.14 % 的人关注了爆炸吧知识经过几年的发展&#xff0c;深度学习方法摧枯拉朽般地超越了传统方法&#xff0c;成为人工智能领域最热门的技术。之后&#xff0c;谷歌、亚马逊、百度、Facebook 纷纷开源了自己的深度学习框架。而支撑AlphaGo的核心技术架构--TensorFlo…

SQL Server 2005的安装,SQL Server 2005系列之一

最近复习SQL Server 2005,忽然有了写系列的打算&#xff0c;也不知道能不能写好&#xff0c;今天先写一篇关于SQL Server 2005的安装的博文吧。和往常一样&#xff0c;我们先来看看SQL Server 2005到底是个什么东西&#xff1f;SQL Server 2005是一种以高性能、高可靠性和可用性…

Quartz - 作业调度框架-插件化开发

背景大部分业务都是基于定时的任务&#xff0c;特别适合使用quartz这类框架解决定时问题。具体quartz的使用&#xff0c;看官方文档就可以了。下面谈谈对quartz插件化的封装。我们使用quartz.plugin。然后在quartz_jobs.xml方法里面定义了schedule&#xff0c;其中灵活的地方在…