老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網站建設、域名注冊、服務器等服務

swoole在php中的用場景-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

站在用戶的角度思考問題,與客戶深入溝通,找到臨海網站設計與臨海網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣、主機域名、網頁空間、企業(yè)郵箱。業(yè)務覆蓋臨海地區(qū)。

這篇文章將為大家詳細講解有關swoole在php中的用場景,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

概述:

Swoole是一個面向生產環(huán)境的 PHP 異步網絡通信引擎,使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務。Swoole 可以廣泛應用于互聯(lián)網、移動通信、企業(yè)軟件、云計算、網絡游戲、物聯(lián)網(IOT)、車聯(lián)網、智能家居等領域。 使用 PHP + Swoole 作為網絡通信框架,可以使企業(yè) IT 研發(fā)團隊的效率大大提升。

php使用swoole的應用場景有:

場景1 - 實時收集定位數(shù)據實時輸出(例 滴滴司機行駛軌跡)

說明:

需要將所有的定位設備實時的接收,將實時的軌跡記錄顯示在地圖上

注意點:

第一點:

web1服務器 連接的用戶1,2,3,web1廣播信息時只能廣播用戶1,2,3,不能廣播web2連接的用戶4,5,6,假設場景是聊天,用戶1發(fā)送一消息,只有web1 服務器的用戶能看到,web2的用戶全部不能收到

第二點:消息的頻率控制,例:100個設備,100個用戶, 100個設備每秒上傳一條數(shù)據,需要實時廣播給每個用戶,就是每秒要100*100 = 1W次,所以可以匯總每秒數(shù)據廣播給所有用戶等等方法

swoole在php中的用場景

場景2 - 只收集定位設備入庫

說明:需要把所有的定位設備上傳的數(shù)據入庫,設備7個,每秒一條數(shù)據,個人使用swoole 的task 函數(shù)(投遞一個異步的任務到 task_worker池中,此函數(shù)是非阻塞的, worker進程數(shù)同樣可以配置) 后調用接口方式入庫

服務器內存報警問題

原因: 在于swoole_server->task 函數(shù)

官方介紹task底層使用Unix Socket管道通信,是全內存的,沒有IO消耗。單進程讀寫性能可達100萬/s,不同的進程使用不同的管道通信,可以大化利用多核。

但這任務如果是調用程序接口時,由于網絡的延遲,增加的任務大于消費的任務時,內存占用會不斷的增加,導致服務器的內存被占滿。

解決方法:消息針對入任務的頻率控制,可以根據自己的業(yè)務場景定義這個時間與是否可延遲等情況,匯總1秒內的所有數(shù)據再調用程序接口(匯總時個人使用redis),最好能直接入庫,不必調用接口

簡單代碼片段

function __construct($config) 
{
    $this->config = $config;
    $this->serv = new Swoole\Server($config['server']['host'], $config['server']['port']);
    // 連接redis
    $this->redis = new Predis\Client($config['redis']);
    $this->storage = new Storage($this->config);
    $this->serv->set([
        'worker_num'      => $this->config['server']['workerNum'],   //工作進程數(shù)量
        'daemonize'       => $this->config['server']['daemonize'], //是否作為守護進程
        'task_worker_num' => $this->config['server']['taskWorkerNum'],
    ]);
    $this->serv->on('connect', function ($serv, $fd){
        $this->onConnect($fd, $serv);
    });
    
    $this->serv->on('receive', function ($serv, $fd, $from_id, $data)  {
        $this->onReceive($fd, $serv, $data);
    });
    $this->serv->on('Close', function($server, $fd) {
        $this->onClose($fd, $server);
        
    });
    $this->serv->on('Task', function($server, $task_id, $from_id, $data) {
        $this->onTask($server, $task_id, $from_id, $data);
        
    });
    $this->serv->on('Finish', function($server, $task_id, $data) {
        $this->onFinish($server, $task_id, $data);
        
    });
    $this->serv->start();
}
public function onTask($serv, $task_id, $from_id, $data){
    // insert 方法是通過接口入庫
    $this->storage->insert($data);
}
public function onReceive($fd, $serv, $data)
{
    $this->storage->writeLog('message:'.$data);
    $data = $this->formatData($data, $fd);
    $serv->task($data);
}
public function onClose($fd, $serv) 
{
    // writeLog 方法是寫入log
    $this->storage->writeLog('close fd:'.$fd);
}
public function onFinish($serv, $task_id, $data)
{
    return '';
}

關于swoole在php中的用場景就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當前文章:swoole在php中的用場景-創(chuàng)新互聯(lián)
地址分享:http://www.xueling.net.cn/article/dppdhs.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 综合日韩天天久久一本 | 亚洲欧美日韩成人综合一区 | 日韩欧美a级v片免费播放 | 国产精品av久久久久久无 | 亚洲欧美不卡视频在线播放 | 在线观看国产麻豆 | 久久久久久综合 | 欧美在线一级片 | 欧美孕妇变态重口另类 | 国产麻花豆剧传媒精品mv在线 | 久色免费视频 | 欧美一区二区久久 | 欧美黑人又粗又大XXXX | 成年日韩片av在线网站 | 成人免费视频视频 | 偷妻无码一区二区三区动漫 | 精品女同一区二区三区在线 | 黄色片视频在线观看 | h纯肉无遮掩3d动漫免费网站 | 天天综合狠狠精品 | 亚洲特黄a级毛片在线播放 女18一级大黄毛片免费女人 | 免费在线看黄色片 | 一区二区中文字幕在线观看 | 亚洲在线观看网站 | 国产啪精品视频网站免费尤物 | 欧洲性XXXX免费视频在线观看 | 91精品国产综合久久久蜜臀九色 | 亚洲日本无码AA在线播放 | www成人 | 大尺度AV无码污污福利网站 | 国产亚洲精品二区 | 久久精品看 | 国产毛片毛片毛片毛片毛片毛片 | 全黄激性性视频 | 一区二区三区国产欧美日韩 | 精品国产成人亚洲午夜福利 | 91先生在线?看 | 亚洲一级特黄视频 | 欧美一级一级 | 在线观看免费毛片 | 亚洲资源在线观看 |