PHP秒杀系统学习
一、基本需求分析
秒杀系统-----秒杀服务
秒杀服务核心实现
- 满足基本需求,做到单服务极致性能
基本需求:
1、扣库存
2、查库存,排队进度
3、查订单详情,创建订单,支付订单 - 请求链路流量优化,从客户端到服务端每层优化
- 稳定性建设
多进程阻塞式服务
二、扣库存分布式实现方案
步骤实现
三、扣库存代码演示
base.php
api.php
四、商品信息页及抢购进度查询实现
1、基本需求,创建,支付订单
2、读商品信息
3、排队进度查看
五、高性能的查库存服务实现
1、高性能可读写库存
2、基本需求实现
六、链路如何实现漏斗型流量
读商品信息页优化
读库存优化
有效压榨CPU,减少I/O操作,减少接口的调用,通过本地内存,减少cpu上下文的切换,多进程,多线程的切换。
七、附·代码
1、base.php
<?php
class Base
{
static $redisObj;
static function conRedis($config = array())
{
if (self::$redisObj) return self::$redisObj;
self::$redisObj = new \Redis();
self::$redisObj->connect("127.0.0.1", 6379);
return self::$redisObj;
}
static function output($data = array(), $errNo = 0, $errMsg = 'ok')
{
$res['errno'] = $errNo;
$res['errmsg'] = $errMsg;
$res['data'] = $data;
echo json_encode($res