PHP秒杀系统 2/2

一、基本需求分析

秒杀系统-----秒杀服务

秒杀服务核心实现

  • 满足基本需求,做到单服务极致性能
    基本需求:
    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
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值