先说一下体会,这个老师讲的算是比较慢的了,而且语义化的地方很多,我推荐大家睡觉的时候听,老师主要时讲解代码,大家可以看一遍代码,然后就听就行了,我这样学习就是享受啊,因为我眼睛一直看电脑特累。
限时秒杀关键点有2个,1是公平,2是性能。为了防止外挂机器,可以使用验证码,验证问题等。
性能方面,一个是高并发,一个是请求处理。并发方面可以cache层只写不读,留又一定的空间, 比如100份的,你接受到200个请求,共同写入一个文件里,db方面处理前100个请求。
技术选型:
- Linux,Nginx,PHP,Mysql,redis
- CDN,智能DNS,分布式缓存(全国多节点),多线路接入
- 负载均衡LVS,大型Web集群
最近把Modern PHP过了一遍,其中作者提到了PHP组件化开发,讲师应该就是用的这个。这里我就不刨析代码了,之后我会发在git上的
Mysql封装类
- PDO
https://github.com/indieteq/PHP-MySQL-PDO-Database-Class
Redis封装库
- phpredis / Predis
- 封装基本redis资源连接和命令
调试日志类
系统设计
- 后台
- 活动管理
- 商品管理
- 订单管理
- 日志管理
- 数据列表(增删改查)
-前台 - 商品展示
- 秒杀(抢购)
- 购物车
- 我的订单
- 登录
- 安全
- 验证码
- 防攻击防作弊,防抢购机器人
基本结构
数据库
自动加载器
class SYSCore {
public static function registerAutoload($class = 'SYSCore') {
spl_autoload_register(array($class, 'autoload'));
}
public static function unregisterAutoload($class) {
spl_autoload_unregister(array($class, 'autoload'));
}
public static function my_callback($match){
return DIRECTORY_SEPARATOR. $match[0];
}
public static function autoload($class_name) {
// 把以下类全部自动加载
if (strpos($class_name, 'common') === 0
|| strpos($class_name, 'model') === 0
|| strpos($class_name, 'Mysql') === 0
|| strpos($class_name, 'Curl') === 0
|| strpos($class_name, 'controller') === 0
) {
// 系统内部自定义的类域名空间
} else {
return true;
}
$class_name = str_replace('\\', '/', $class_name);
$class_path = CUSTOM_CLASS_PATH . DIRECTORY_SEPARATOR . $class_name.'.php';
// 为了保证不出现问题,再进行一次替换处理
$class_path = str_replace('//', '/', $class_path);
if(file_exists($class_path)) {
return include_once($class_path);
} else {
echo "file not exists class_path=$class_path\n<br/>";
}
return false;
}
}
SYSCore::registerAutoload();
商品几种状态控制
- Start,Processing,low stoks,end 通过获取商品的状态来显示商品的显示隐藏
秒杀逻辑控制器
- 接收参数
- 验证掩护是否登录
- 验证问答信息是否正确
- 验证用户是否已经购买
- 验证活动信息,商品信息是否正确
- 验证商品数量是否在合理数量之中
- 验证商品剩余数量是否足够购买
- 扣除商品剩余数量
- 创建订单
- 返回提示信息
单商品秒杀
- 简单
- 没有关联关系
- 验证逻辑少
- 万次秒杀 请求少,并发低 单机mysql没问题
- 百万秒杀 Web集群 Redis
- 过亿级秒杀 需要临时调配大量服务器资源
组合商品秒杀
- 支持多商品选择,多商品库存,限购数量
- 验证和处理逻辑更多
- 百万秒杀
提升速度
防止机器人
- 语音问答题,情绪,动作,运算(随机性大,防止题目预判)
- 视听问答题,颜色,图片,语音,视频
- 知识点问答题,地理,历史,人文
点击查看更多内容
11人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦