开篇
秒杀系统在电商系统中是非常重要的,不是因为秒杀这个功能重要,而是因为秒杀提现的是一个系统的并发负载能力。例如阿里巴巴或者京东,每年的双十一的峰值,其实就是下一年的常态,双十一各项技术指标,已经作为这些电商公司的年度技术指标指引。
如果你的系统,秒杀都能承受的了,一般,在应对高峰流量的时候就不会出太大问题。今天就来调试一个开源的秒杀项目。本文继续实战调试。如果有需要开源链接的同学,请移步至文章末尾。本文一如既往调试实战。源码好找,调试不易。如果觉得有用就转发收藏吧。
下面就开始调试此系统,当然此系统是java 的spring boot项目。其他语言的同学,可以参考一下其思想,java的同学建议转发收藏,因为本篇不只是源码这么简单。
该开源秒杀系统项目架构
由于此系统为开源系统,我这里就直接上作者的架构图了,尊重开源作者。高清大图,请到电商上或者作者主页查看。简单的说,此架构图中包含,高防IP层,SLB服务器负载均衡层,nginx应用负载层,以及各个运行容器,服务器,数据库等。
项目业务场景
大家体验过秒杀,生活在互联网世界外的人除外。在我们购物秒杀的时候,服务器会面临瞬间高并发。电脑旁边的小哥哥、小姐姐们如超市哄抢的大妈一般,疯狂的点着鼠标。请问你是不是?而此时其实货物库存少、便宜、稀缺限量,值得大家去抢购,如苹果肾,小米粉,锤子粉(理解万岁),以及现在的华为粉。
而此时的用户规模可大可小,几百或者上千人的活动单体架构足以可以应付,简单的加锁、进程内队列就可以轻松搞定。一旦上升到百万、千万级别的规模就要考虑分布式集群来应对瞬时高并发。
这就是为什么要有秒杀这样的系统,来应付这样的场景。当然也是最考验IT电商公司的技术。其实秒杀里面的技术,几乎可以应用到任何与电子商务相关下单的场景下。
核心调试部分
1、第一步,从开源地址,把秒杀项目git clone下来,如下我这里使用的是IDEA。如果网络速度快,几秒就搞定了。网络速度慢就等一下吧。
2、导入之后的样子是这个样子的。当然此项目是基于Java 的 spring boot 的。
3、启动秒杀依赖环境。zookeeper,redis,kafka等。如下图,当然我调试的是windows环境,其他环境也是如此,这里就不多说了,按我说的启动环境就对了。
4、修改项目中的配置。
如果你是本机的都改成 127.0.0.1 。如果条件允许,你是多台机器,请把配置 application.properties 中相关redis、zk以及kafka相关服务器IP地址。
5、导入sql,当然此项目中有sql的,简单的两个表,去源码里找即可。
导入后大
6、启动项目,然后访问本机的 localhost:8080,后面可以加 /seckill/swagger-ui.html 查看秒杀系统里的接口。
7、当然你自己可以用jmetter 压测,也可以用postman工具测试。这里就不多说了,感兴趣的自己去探索吧,另外开源地址上也有很多说明。