为何秒杀上线就变"秒死"

博客
by复泽网络

      最近一个跟朋友聊起一个项目, 有一个秒杀功能, 他说当初开发好时候都挺正常的,后来上线只要一开秒杀,程序就打不开了. 以为是服务器配置太低, 结果升级了CPU和内存. 结果基本可以正常运行. 然而, 当复泽的测试团队进行压力测试时, 用户达到200时系统无法继续提供服务.

       这种情况在软件中非常常见, 秒杀这种高并发应用涉及到很多的技术, 而软件工程师由于经验不足, 按照相对简单的方式做出来后, 系统并不能满足成千上百的用户. 他们往往在出现故障时寄托于升级系统硬件, 可这通常是昂贵的, 而且治标不治本.

      那实际上, 秒杀需要使用很高的CPU和很大的内存吗? 答案是:否. 秒杀的核心是在同一秒支撑成百上千的用户请求, 既要能保证系统的稳定, 又得保证功能的正常. 试想一个屋子里只能容纳10个人, 但外面还有1000个人要进入, 那么要怎样让每个人都进入呢. 都进入肯定会挤爆房间,所以我们需要有队列,让里面的人出,外面的人进. 有队列就能保证正常吗? 还不是, 我们还得保证队列有序, 要不插队的人先进到屋, 或没进到屋就被挤出来了.

        到这里,大家可能就明白了, 原来还挺复杂的, 事实上远比这个复杂, 比如:出去的人插队又进到屋里, 后面的人还是永远进不去.

       这些问题, 在初级的开发人员那里, 被当做简单的处理. 如:1000个人进, 进的去的就是成功的, 进不去的就是失败的. 但1000个人进,有可能一个挤不进去也是有可能的. 所以结果就是问题重重. 如果您有类似的问题和困扰, 不妨来电咨询复泽网络, 我们从事多年的软件定制开发服务,各类APP,商城、金融类应用.有丰富的高并发开发的经验.