如果说昨天什么最火,估计就是“官宣”了吧,赵丽颖结婚据说某新浪微博甚至还瘫痪了一阵子。

传说上次有人说微博内部调整,现在已经支持八个明星同时出轨并发,那么昨天的事情还真是叫人尴尬。

吐槽新浪

并发对于开发初学者可能觉得没什么确实感觉,毕竟自己做ORM单应用项目的时候遇到的并发量就是自己,撑死了也就是十几个人的并发数。所以很多初学者对于并发崩溃并没有个概念,所以今天我们就来讨论一下各个架构可以承受的并发量是多少。

目前比较常用的架构包括但不限于ORM,MVC,RPC,SOA等和架构详情,如下图

单一应用架构:将所有功能都部署在一起减少成本和节点,这样的框架适合流量较小的网站,只需要一个应用,而简化数据库访问的增删改查是关键。

缺点:不方便维护,代码分层不明显,代码越多越难维护,开发的时候我和上帝知道,现在估计只有上帝知道了。

垂直应用架构:将应用拆成互不相干的几个应用,这样可以承受的并发有所增加,而加速前端页面开发的Web框架是关键。(这里涉及到两个面:一个是将应用按照功能模块拆分并独立部署,另外一个是代码结构上的分层,以SSM为例,分为视图层、action层、service层、dao层,各层之间通过接口之间耦合起来,jsp调用action,action调用service,service调用dao)

缺点:代码难以复用,独立的模块相当于一个独立的应用。

分布式服务架构:当垂直应用越来越多,这个时候我们管理起来很麻烦,不仅如此应用间复杂的交互更会让我们手足无措,这个时候我们可以考虑将核心模块抽取出来作为服务中心,让前端应用快速响应市场需求,这个时候,用来提高业务复用和整合应用的分布式框架(RPC)是关键。

缺点:实际开发中发现有点难,其次网络存在问题的时候远程调用可能较慢,增加服务器资源当并发量降低之后容易造成资源浪费,但相对于dubbo曾经扛起了阿里巴巴帝国就已经可以看出多强悍了,不过还是上一张图对比常用的RPC框架

流动计算架构:当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。

下图是新浪核心业务图,我们有理由相信新浪使用的是流动计算架构这个我不太确定,请大神纠正。

好,罗列清楚,有概念了我们就做简单的并发测试

贴一下Python的selenium代码:

#-*-coding:utf-8-*-

importrequests

importthreading

importtime

classpostrequests():

def__init__(self):

self.url='请求的url'

defpost(self):

try:

r=requests.post(self.url,files=self.files)

print(r.text)

exceptExceptionase:

print(e)

deflogin():

login=postrequests()

returnlogin.post()

#if__name__=='__main__':

#login()

try:

i=0

#这里是线程数

tasks_number=150

print('测试启动')

time1=time.clock()

whilei

t=threading.Thread(target=login)

t.start()

i+=1

time2=time.clock()

times=time2-time1

print(times/tasks_number)

exceptExceptionase:

print(e)

以下是框架并发测试过程和内容

测试对象:单应用

使用技术:JAVA的TestNg和Python的selenium

测试对象搭建:首先是单应用,简单的sql查询,开发一个简单的API接口,代码不贴。

首先使用7个线程同时执行7个请求,请求时间超过7秒就算测试失败,代码如下:

@Test(threadPoolSize=7,invocationCount=7,timeOut=7000)

结果:通过没有报错没有超时。

把所有参数翻了一番之后

@Test(threadPoolSize=14,invocationCount=14,timeOut=7000)

结果:开始出现异常,请求时间出现测试失败的。

测试对象:SSM

使用技术:JAVA的TestNg和Python的selenium

测试对象搭建:MVC,简单的sql查询,简单的API接口,代码不贴。

首先使用14个线程执行14次,请求时间超过5秒就算测试失败,代码如下:

@Test(threadPoolSize=14,invocationCount=14,timeOut=5000)

结果:通过没有报错没有超时。

把所有参数提升@Test(threadPoolSize=180,invocationCount=1800,timeOut=5000)

结果:请求明显变慢,有些测试开始失败超时,但是并没出现异常。

继续增加参数值

@Test(threadPoolSize=2000,invocationCount=8000,timeOut=5000)

结果:请求明显变慢,开始失败超时,并出现异常。

注:这里有人会说可以使用redis缓存来提高数据库速度,我这里也配置了redis进行测试在@Test(threadPoolSize=2800,invocationCount=28000,timeOut=4000)出现异常和超时请求

测试对象:dubbo

使用技术:JAVA的TestNg和Python的selenium

测试对象搭建:dubbo分布式集群,使用三台服务器做集群分布,权重一致,使用redis缓存+mysql数据库技术。

首先使用2000个线程执行18000次,请求时间超过4秒就算测试失败,代码如下:

@Test(threadPoolSize=2000,invocationCount=18000,timeOut=4000)

结果:执行了很长时间,但是并没出现超时和异常。

把所有参数翻了一番之后

@Test(threadPoolSize=4000,invocationCount=24000,timeOut=4000)

结果:还是没有出现异常,也没有出现超时

继续提升参数值

@Test(threadPoolSize=20000,invocationCount=200000,timeOut=4000)

结果还是没报错

于是修改策略,并发请求*5台电脑

@Test(threadPoolSize=40000,invocationCount=200000,timeOut=4000)

结果:终于出现异常和超时请求,当然这还是三台服务器,相信更多的资源可以有更好的体验。

备注:由于测试对象的业务逻辑比较简单,当然,如果测试对像业务逻辑复杂可能会出现误差,以大神你们的为准。

第四个臣妾只能说我做不到,首先增加资源吃力,其次我以为测试用例只需要增加计算器线程数,同时增加并发请求,但是后来发现这样的请求并没办法模拟出那么恐怖的并发量。这个希望技术提升后来继续操作,毕竟对高并发这块兴趣还是蛮大的。今后有可能会继续模拟环境,当然大神也可以补充改正我。

写这篇文章的感觉大概就是我写了一年多的ssm都不知道他能承受多少并发,但是我对它原理很了解,我相信很多人也是这样,所以我觉得有必要给大家一个实际的参考,让大家更了解自己正在使用的架构。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

微博软件测试报告,“官宣”下新浪微博崩溃的架构测试相关推荐

  1. 中兴微型计算机,「简讯」华为MateBook X官宣!中兴将推首款屏下摄像头智能机……...

    华为MateBook X官宣! 日前,华为消费者业务CEO余承东在微博发布预告称,历时三载,一款"轻量级"重磅新品终于将和大家见面,8月19日,上海见!当时就有猜测,可能是华为Ma ...

  2. 【1+X】软件测试报告

    想看更多内容请移步专栏 转载:[1+X]软件测试技术 - 软件测试报告 - 蓝桥云课 (lanqiao.cn) 软件测试报告 知识点 软件测试结束的标准 软件测试报告的内容 软件质量管理体系 ISO9 ...

  3. 赵丽颖、冯绍峰的官宣炸了微博的高并发系统!

    2018 AI开发者大会是一场由中美人工智能技术高手联袂打造的AI技术与产业的年度盛会!这里有15+硅谷实力讲师团.80+AI领军企业技术核心人物.100+技术&大众实力媒体.1500+AI专 ...

  4. 冯绍峰赵丽颖官宣结婚 ,微博瘫痪,微博技术专家如何应对?

    今日上午10时左右,新浪微博推送了一条消息,赵丽颖冯绍峰官宣,晒出结婚证!小编立马点了进去,没想到微博(手机端)又打不开了. 微博作为国内第一媒体,拥有超过 3.6 亿的月活用户,也是当前社会热点事件 ...

  5. 互联网晚报 | 10月29日 星期五 | 理想汽车第10万辆整车正式下线;微博新增“炸毁评论”功能;《长津湖》续集正式官宣...

    今日看点 ✦ 多家平台回应"望京某二房东跑路"事件:将全额承担租客损失 ✦ 元气森林回应淘宝店铺运营事故:该店铺停止一切销售,将补偿14.05万个下单用户 ✦ 理想汽车第十万辆整车 ...

  6. 鸿蒙系统2.0崩溃了,集体失声?鸿蒙系统官宣后,鸿蒙系统的真实现状显现

    原标题:集体失声?鸿蒙系统官宣后,鸿蒙系统的真实现状显现 文|北桥 校对|北桥 未经授权,不得以任何形式转载.复制或建立镜像! 本月初,鸿蒙系统开启了大规模的公测. 根据目前参加鸿蒙系统公测的用户对于 ...

  7. cpa禁用计算机型号,注意!Becker官宣:CPA Final review电脑版软件停用!

    原标题:注意!Becker官宣:CPA Final review电脑版软件停用! Becker软件的官方通知 从美国时间2020年11月5号开始,Becker更新了CPA Exam Review课程 ...

  8. 赵丽颖冯绍峰官宣离婚,最扎心的其实是这帮人...

    今天的热搜大家都看了吧?(一线群众前排吃瓜) 赵丽颖工作室与冯绍峰工作室同时官宣:赵丽颖女士和冯绍峰先生已决定和平分手并结束婚姻关系,并已于今日办理相关手续. 冯绍峰随后发文表示:日子很长,过去很好, ...

  9. 准官宣?余承东证实华为已有自研操作系统

    3月10日,华为消费者业务CEO余承东在接受德国媒体<世界报>的采访中表示:华为确实已经准备了一套自研的操作系统,但这套系统是以防未来一旦不能使用Android或Windows等系统的Pl ...

最新文章

  1. Android 录制视频
  2. sleep头文件linux,Linux下的sleep函数 要用的话得包涵什么头文件啊?
  3. angular2 组件之间通讯-使用服务通讯模式 2016.10.27 基于正式版ng2
  4. Java8新特性-接口中的静态方法与默认方法
  5. tornado异步请求非阻塞
  6. 【计算摄影】计算机如何学会欣赏照片的美感?
  7. 强化学习3——有模型(Model-base)与无模型(Model-free)RL的区别
  8. 剑指offer--剪绳子
  9. 如何让手机1秒打开健康码 ,任何机型!
  10. Android源码分析之 JobScheduler
  11. xxxxxxxxxccccxcc
  12. 学堂云大学计算机答案,学堂云的答案哪里找?
  13. android graphview使用与感受
  14. 通过HDMI获取显示器EDID数据
  15. PowerBI应用案例:杜邦分析图动态观察财务指标
  16. Linux 操作系统的 ECS 挂载云硬盘
  17. 人工智能以及图形图像处理领域CCFA类期刊汇总与个人评价
  18. 会调色了不起吗? SORRY,会调色真的了不起!
  19. sqlserver 人名_mssql sqlserver 使用sql脚本生成随机中文名字的方法分享
  20. mysql同步软件_Mssql、Mysql数据同步软件:SyncNavigato数据库同步

热门文章

  1. 讽刺Google搜索API
  2. PS人像风景摄影后期1 2021-09-28
  3. 凯文·加内特:三十一岁,蓝天变绿的夏季
  4. 《双语不用教》DVD套装目录
  5. 程序员如何哄女朋友开心的秘籍,定制给女朋友一个应用(生日礼物)
  6. 华为荣耀更新系统后卡无服务器,华为更新EMUI系统后,手机变得卡顿怎么办?...
  7. 无法读取xml头部dtd
  8. 微信王者服务器怎么删掉,《王者荣耀》如何删除微信列表里的人 2021删除游戏好友方法...
  9. 计算机网络技术实验报告三,计算机网络第三次实验报告
  10. Acticti工作流(二):设置审批人的三种方式