一次请求对应一次返回,QPS累加1,那么若是一次请求没有返回或者是异步调用,QPS是否要累加?更简单点,当接口没有返回值时,我是否能够无止境的调用,接口的极限处理能力是多少?
咱们一般都说异步的性能要比同步好,单从流程上分析,少了返回信息处理时间,确定是可以提高接口性能,可是若是你只想到这一点说明你仍是不理解高并发。
一次请求除了业务处理须要耗时,数据返回的时候也是要耗时的,途径的每个网络设备均可能成为高并发的功能要素。
一般咱们说作高并发设计,实际上是在解决业务在必定流量的前提下的业务可用性性问题。当你的QPS是100,业务接口可用性为4个9,当QPS提高到1000,业务接口可用性降低为3个9,当QPS是10000,业务接口可用性降低为2个9,当QPS是100000,业务接口可用性降低为1个9。哈哈如今就很严重了,由于每10次调用就会有1次失败,这个体验是很是差的。固然这个时候并不能说明咱们的业务接口是由于不可用形成的服务等级降低,那是由于流量上来了,由于你的接口在正常流量下服务等级是很是高的。这个时候若是你不想增长机器投入,就得限流和降级,让部分请求直接失败或者友好的提示。哈哈若是你的业务是须要达到金融级别的安全等级,限流和降级是不能从根本上解决问题的,这个时候你只能向老板申请添加机器,加大硬件投入,经过集群来提高QPS。固然并非全部的业务均可以经过加机器来解决问题的,有些须要应用本身进行业务逻辑优化,这个时候就须要经过业务架构来梳理业务逻辑,并优化业务逻辑来确保服务边界合理,无状态等,来确保水平扩展也能比较明显的提高性能。
因此说若是你能从一次简单的请求可以分析出这么多与高并发场景和要素,就说明你是真的懂高并发,并可以比较快的解决一些高并发的问题。
游侠——高级技术专家 架构师 业务负责人
文能执笔论天下,武能拿刀切蛋糕
若是以为喜欢做者的观点,欢迎关注并点赞,谢谢!
本文分享自微信公众号 - 架构师玄学之路(andy_aty)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。安全