热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

并发控制_服务端性能保障之流量并发控制方法

本文由编程笔记#小编为大家整理,主要介绍了服务端性能保障之流量并发控制方法相关的知识,希望对你有一定的参考价值。服务端性能保障之流量并发控制方法
本文由编程笔记#小编为大家整理,主要介绍了服务端性能保障之流量并发控制方法相关的知识,希望对你有一定的参考价值。


服务端性能保障之流量并发控制方法

      7月底最后一个周日,我们品课学院线下性能提升班第二期算是正式开课,零基础的学员不少,有测试管理经验、多年开发或者测试经验的人员也有几位,但是各个都很上进好学,不是因为学习而学习,而是有共同理想而走在一个教室,交流探讨专业知识。他们谦虚且上进、因为他们知道做着没有累积性的工作,却期望老板替你加薪?做得久也未必能领得多,一切以实力见真章,所以他们珍惜每一堂课,认真笔记,发散性的问问题,无论功能测试、测试管理、行业知识、架构设计、软硬件知识等等,的确很考验老师的知识面和实战经验。

不同期的学生,不同阶段的学习提升中,学生问的问浅题深不一,深广度不同、天南地北都有,确实很有趣,在教学交流中也提升丰富我的知识体系,也会有碰到一些问题,我在平常工作中不会考虑那么完善,也有因知识面出现缺漏,让我课后弥补,让我逐渐完善我的管理体系和各类领域专业知识,并运用到实际项目工作中,例如第二节课就有学生问道数据库表设计中charvarchar在性能上的区别与用法、不同类型磁盘的性能影响、APP弱网测试、南方与北方无线网传输异常原因、数据库试图使用场景、并发数与在线数如何估算等等,不同的技术问答题,都有不同的论证方法,都能写成一篇技术文章。

本章介绍的是系统流量控制或者说限流,也是在课堂中一个学生问到一个问题,个人觉得值得探讨,因为该问题在2012年的时候,我曾测试过一个国有大行大型项目,该系统流程复杂、规则校验多、数据量庞大、并发用户数多且集中并发度高,客户的要求与项目运维运营技术问题,确实深有体会,加上互联网交易时代,各种APP产品铺天盖地,各种营销手段层出不穷,目的就是为了抢夺市场,抢夺用户流量,这时我们无法使用正常手段进行评估系统用户数,为了提高系统的可靠性、用户体验等,软件开发会从不同架构设计角度,非功能性设计等来完善架构的性能,这也是微服务能慢慢风靡原因之一,通过微服务架构来提高系统在高并发下的高可用性、高可靠性等。

  产品需流控背景

     例如各种电商APP出现,确实对于未知的市场用户数量在性能测试过程中确实很难预估将来在线用户数、注册用户数、并发用户数,甚至游客查询产品信息用户等也会对服务产生压力,这种确实很难估算,那我们如何做呢?

    现在各类电商,美团、饿了吗、淘宝、JD等在应对秒杀、大促、双11618等高并发性能压力场景下,对服务端的流控已经成为硬性架构设计指标要求,目的是为了保证系统在高压下能平稳运行起到高可用性、高可靠性作用。

    其实很多对外接口服务也是一样为了防止外来请求数据高于自己预估指标,会对外服务接口设置接口限流作用。特别是微服务系统,其接口请求可能来自很多外系统调用,对于这种海量接口请求的微服务,接口限流很重要。

应对哪些指标进行流量控制呢?

我们性能测试过程涉及的性能指标有吞吐率、TPSHPS、并发用户数这些技术性指标等都可以当作流控的指标,当然业务上的某些指标也可以,例如输入验证码的时间限制、短信验证码输入次数、机构用户限制、JSF请求限制等。

   一般情况下,对请求数就是HPS进行流控比较方便,因为该值可查、可控性也高,,通过性能压力测试容易压力与定位。

场景案例介绍

   下面场景案例是本人在2012年时,协助国内一家比较大型的城商行对信贷系统进行流量控制验证性测试介绍。

  项目背景:

对某系统流量监控测试主要验证在开启监控工具进行稳定性测试对抓取响应超时的JSFUCC时是否对系统内存等资源使用有影响;同时在开启流量访问数控制开关时针对系统并发一定数量的用户数访问特定的JSFUCC是否进行功能性控制等验证性测试。

测试目的:

流控用户访问限制性测试主要侧重系统在并发一定用户数下集合访问某个业务交易点的压力情况下,在增加用户数时是否前端提示用户数访问限制信息提示。

测试策略:

    主要测试策略,在对某一个UCC请求超过一定数量时,验证是否弹出访问量超过流量开关控制最大访问提示信息。

                  技术分享图片 

  测试结果:

       在流量开启设置好业务交易控制场景和性能测试场景后,设置瞬间并发下操作某一个业务UCC服务请求,当超越该请求时应该提示如下信息,确保系统受流控成功。

              技术分享图片

并在压力测试过程检查内存回收情况、服务器资源资源利用率、session会话回收情况,确保此时的会话数的正确性和回收率的准确。

               技术分享图片

    而在loadrunner压力测试场景中,也可以看到如下错误提示信息,说明流控在并发下功能的准确性。

              技术分享图片

以上场景是针对业务请求进行流量控制,算是业务流控、而一般微服务时代是技术接口、集群部署方式的这时流量监控可能复杂性更高,例如,对每一个接口服务的调用频度而限制、调度频率的设置等进行验证下非功能性测试。

 



推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 2010年下半年软件评测师试题标准答案阅卷用标准答案,更多答案登录http:www.enpass.cn查看,软考培训权威机构由于发博文的限制,有些图片不能发上来,下载完全版答 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 目前正在做毕业设计,一个关于校园服务的app,我会抽取已完成的相关代码写到文章里。一是为了造福这个曾经帮助过我的社区,二是写文章的同时更能巩固相关知识的记忆。一、前言在爬取教务系统 ... [详细]
  • java编写一个为网站生成验证码的程序_Java后端产生验证码后台验证功能的实现代码...
    直接跳severlet在java后台生成验证码:RequestMapping(valueyzm.action)publicvoidYzm(HttpSessions ... [详细]
  • Java实现验证码的制作
    验证码概述为什么使用验证码?验证码(CAPTCHA)是一种全自动程序。主要是为了区分“进行操作的是不是人”。如果没有验证码机制,将会导致以下的问题:对特定网站不断进行登录,破解密码 ... [详细]
  • Spring MVC 浅谈
    大学时写的的文章,当时文章水平略差,大家见谅。MVC这个词儿,最早的定义应该是作为一种软件架构设计模式出现在软工里面的,即使用model、view、controller来设计及定 ... [详细]
  • 物联网应用介绍
    •物联网的研究背景(概念|本质|特征|发展现状)       物联网是新一代信息技术的高度集成和综合运用,已成为全球新一轮科技革命与产业变革的核心驱动和经济社会绿色、智能、可持续发 ... [详细]
  • 出现_史上最大漏洞出现,你的安卓iPhone电脑都不安全了!
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了史上最大漏洞出现,你的安卓iPhone电脑都不安全了!相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 栈是一种先进先出的线性表,对么
    常见问题栈,先进先出,线性表常见问题网络电视直播源码php,ubuntu安装固态硬盘,爬虫思路有哪些,php安全实例,江苏360seolzw栈是一种先进先出的线性表,不对。网页挖矿 ... [详细]
  • 【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布!
    2019独角兽企业重金招聘Python工程师标准2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Ja ... [详细]
author-avatar
melodyhaoduo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有