很多人在做秒杀场景的压测时,经常出现以下两个问题:
1,用自己的笔记本电脑瞬间发起1000个请求
2,没有使用虚拟ip(发起的请求都是同样的一个ip)
其实现在很多人在做秒杀压测的时候,都会遇到这两个问题,第一个问题,就是用一个客户端机器来进行压测,发起大概1万个请求,这样子是不行的,一个客户端最多起1000个请求。因为每启动一个线程需要至少一兆的内存,如果说你启动1000个的话,那就需要将近1GB的内存。而且启动1000个请求,对于这个客户端的压力机配置要求也是挺高的,不建议在3秒内启动!如果1000个线程要启动的话,至少要10秒钟才能够起来,很多人都是只用了1-3秒钟,发起1000个线程,这样子基本上都是失败的。
另外还有个问题,就是现在发起的这1000个请求,都是用在你本机的这个客户端,也就是你自己的电脑发起的这1000个线程发起的1000个请求,其实都是一个socket链接,因为你的电脑就一个IP和端口号又都是一样子的,所以说客户端和服务器端建立链接的话,就只有这一个socket链接,其实根本没有完全模拟大量并发用户秒杀抢购的这种场景,所以一开始都是错的。
我的建议就是:在做这个压测的时候,特别是秒杀抢购的这种压测的时候,最好是和这个相关的研发,还有这个架构师,还有这个产品经理沟通一下,你要模拟什么样子的场景,这才是最重要的,你要模拟1000个人进行秒杀抢购的时候,你要考虑这1000个人是怎么抢购秒杀的,这1000个人肯定是来自不同的笔记本电脑,手机或者客户端,肯定每个人用的都是不同的IP,你现在就用一台电脑模拟的,那肯定是一个IP建立的,这是完全是不对的!
另外你要求模拟1万个人并发的话,那你就要考虑10台笔记本电脑形成分布式来启动这1万个线程,而且这些线程都要是独立的IP,这才能够真实的模拟发送的这种客户端抢购秒杀!要模拟1万个人进行客户端,抢购,秒杀就要建立1万个socket链接。
资料获取方法
【留言777】
各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!
三连之后我会在评论区挨个私信发给你们~