限時(shí)秒殺關(guān)鍵點(diǎn)有2個(gè)启泣,1是公平涣脚,2是性能。為了防止外掛機(jī)器寥茫,可以使用驗(yàn)證碼遣蚀,驗(yàn)證問題等。
性能方面纱耻,一個(gè)是高并發(fā)芭梯,一個(gè)是請(qǐng)求處理。并發(fā)方面可以cache層只寫不讀弄喘,留又一定的空間玖喘, 比如100份的,你接受到200個(gè)請(qǐng)求蘑志,共同寫入一個(gè)文件里累奈,db方面處理前100個(gè)請(qǐng)求。
技術(shù)選型:
- Linux,Nginx,PHP,Mysql,redis
- CDN急但,智能DNS,分布式緩存(全國(guó)多節(jié)點(diǎn))澎媒,多線路接入
- 負(fù)載均衡LVS,大型Web集群
最近把Modern PHP過了一遍羊始,其中作者提到了PHP組件化開發(fā)旱幼,講師應(yīng)該就是用的這個(gè)。這里我就不刨析代碼了突委,之后我會(huì)發(fā)在git上的
Mysql封裝類
- PDO
https://github.com/indieteq/PHP-MySQL-PDO-Database-Class
Redis封裝庫(kù)
- phpredis / Predis
- 封裝基本redis資源連接和命令
調(diào)試日志類
系統(tǒng)設(shè)計(jì)
- 后臺(tái)
- 活動(dòng)管理
- 商品管理
- 訂單管理
- 日志管理
- 數(shù)據(jù)列表(增刪改查)
-前臺(tái) - 商品展示
- 秒殺(搶購(gòu))
- 購(gòu)物車
- 我的訂單
- 登錄
- 安全
驗(yàn)證碼
-
防攻擊防作弊柏卤,防搶購(gòu)機(jī)器人
基本結(jié)構(gòu)
圖片描述數(shù)據(jù)庫(kù)
圖片描述圖片描述圖片描述圖片描述自動(dòng)加載器
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) {
// 把以下類全部自動(dòng)加載
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
) {
// 系統(tǒng)內(nèi)部自定義的類域名空間
} else {
return true;
}
$class_name = str_replace('\\', '/', $class_name);
$class_path = CUSTOM_CLASS_PATH . DIRECTORY_SEPARATOR . $class_name.'.php';
// 為了保證不出現(xiàn)問題,再進(jìn)行一次替換處理
$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();
商品幾種狀態(tài)控制
- Start,Processing,low stoks,end 通過獲取商品的狀態(tài)來顯示商品的顯示隱藏
秒殺邏輯控制器
- 接收參數(shù)
- 驗(yàn)證掩護(hù)是否登錄
- 驗(yàn)證問答信息是否正確
- 驗(yàn)證用戶是否已經(jīng)購(gòu)買
- 驗(yàn)證活動(dòng)信息匀油,商品信息是否正確
- 驗(yàn)證商品數(shù)量是否在合理數(shù)量之中
- 驗(yàn)證商品剩余數(shù)量是否足夠購(gòu)買
- 扣除商品剩余數(shù)量
- 創(chuàng)建訂單
- 返回提示信息
單商品秒殺
- 簡(jiǎn)單
- 沒有關(guān)聯(lián)關(guān)系
- 驗(yàn)證邏輯少
- 萬(wàn)次秒殺 請(qǐng)求少缘缚,并發(fā)低 單機(jī)mysql沒問題
- 百萬(wàn)秒殺 Web集群 Redis
- 過億級(jí)秒殺 需要臨時(shí)調(diào)配大量服務(wù)器資源
組合商品秒殺
- 支持多商品選擇,多商品庫(kù)存敌蚜,限購(gòu)數(shù)量
- 驗(yàn)證和處理邏輯更多
-
百萬(wàn)秒殺
圖片描述
提升速度
圖片描述
圖片描述
圖片描述
圖片描述
防止機(jī)器人
- 語(yǔ)音問答題桥滨,情緒,動(dòng)作弛车,運(yùn)算(隨機(jī)性大齐媒,防止題目預(yù)判)
- 視聽問答題,顏色纷跛,圖片喻括,語(yǔ)音,視頻
- 知識(shí)點(diǎn)問答題贫奠,地理唬血,歷史望蜡,人文