智能一代云平台十九选修课-类似秒杀的高并发业务
目录
智能一代云平台(十九):选修课—类似秒杀的高并发业务
强烈推荐一个大神的人工智能的教程:
【前言】
选课,考试,评教这三个功能是我们的云平台中的重头戏;并发高是这三个功能的一个共同特点,在解决的过程中充满挑
战,当然含金量也会高很多;今天就和大家一块儿分享一下我们针对高并发的业务的一些实践和解决思路。
【如何做好一个秒杀系统】
一、我们系统中遇到问题
1、基础系统的公共选修课出现的问题:
大家统一来选课时出现负数情况(类似电商中的超卖);
2、原因:
由于判断是否课程选完是在页面做的控制,大家在加载页面的时候还有课程余量,但是实际上课程已被选完;而后
端没有做课程余量的校验;
3、解决办法:
(1)在controller中提交课程方法时先去数据库中查询课程余量是否为0,但是无法防止并发情况,在方法上加
synchronized;
① 优点:实现简单;
② 缺点:当部署是集群情况下会有问题;效率比较低;
(2)利用乐观锁来控制
① 优点:实现简单;
②缺点: 正在做相关实验,做完后会进行完善;
(3)利用MQ来实现
①优点:速度上快;
②缺点:实现相对来说困难;
4 、模拟:
用Jemeter通过录制脚本来进行的测试,通过压测接口这样来检查;并监控服务器的系统的性能的消耗。
二、业界秒杀系统的思路
1、大部分流量在cdn层已经拦截,直接返回给用户本次没选上;一般是随机进行筛选;
2 、真正能进入后端的流量非常少;
3 、针对大流量写入采用异步进行处理,课程余量在开始前已经预热加入到缓存中,每卖出一件缓存减1,为保证并发去
减会设置相应的锁阀值,低于阈值后就会对课程余量操作加锁操作。
【总结】
随着互联网越来越深入;大流量,高并发已经成为很多系统的瓶颈,而如何处理好是一件十分具有挑战的事情;
遇到挑战迎难而上,从而不断的磨砺自己,使自己成长的更快。