小白向各位大佬請(qǐng)教各問題,假如一個(gè)項(xiàng)目有1萬并發(fā)量,直接用mysql數(shù)據(jù)庫的話,數(shù)據(jù)庫能承受住嗎? ? 如果用文件或者redis來保存聊天記錄,每隔一定時(shí)間存一次數(shù)據(jù)庫,這種方式可行嗎? ? 用文件存儲(chǔ)還是用redis存儲(chǔ)效率高呢?...
比如:一個(gè)進(jìn)程,監(jiān)聽0.0.0.0:443地址,當(dāng)有連接請(qǐng)求時(shí),根據(jù)不同的域名,使用相對(duì)應(yīng)的ssl證書去解密. 就是先有一個(gè)socket,不設(shè)置ssl證書,等連接來時(shí),根據(jù)不同的域名,給socket配置相應(yīng)的證書, ? 不過我看https原理發(fā)現(xiàn)這樣不通,https是先進(jìn)性ssl握手,之后再將數(shù)據(jù)返回到上層, ? 想實(shí)現(xiàn)這個(gè)效果用workerman能嗎,php能嗎. ? 就跟nginx是的,配置好每個(gè)域名對(duì)應(yīng)的證書,...
打開一個(gè)workerman后臺(tái)運(yùn)行?root@9202e29e1549:/var/www/html# php public/pricemonitorworker.php start 然后查看狀態(tài):提示端口被占用 root@9202e29e1549:/var/www/html# php public/pricemonitorworker.php status ? ? stream_socket_server(): un...
php進(jìn)程中數(shù)組占用5Gb內(nèi)存,隨著不斷循環(huán)計(jì)算數(shù)據(jù)在不斷的變化。 ? 其他進(jìn)程,如何去讀取這個(gè)數(shù)組里面的數(shù)據(jù)?通過redis、GlobalData等都不行,因?yàn)橐4娴絩edis、GlobalData需要先把數(shù)組序列化,然后保存。然后讀取的又需要反序列化,非常耗時(shí)間 ? 有沒有什么辦法?求各位大佬指點(diǎn)迷津 沒有辦法共享這個(gè)數(shù)組的內(nèi)存地址給其他進(jìn)程? 有沒有其他不比php數(shù)組性能差的數(shù)據(jù)結(jié)構(gòu) ? ...
1.只開啟了一個(gè)線程。同時(shí)有定時(shí)器任務(wù)和端口監(jiān)聽 2.定時(shí)器每一秒執(zhí)行一次。但是代碼會(huì)執(zhí)行2秒,導(dǎo)致定時(shí)器接連不斷的運(yùn)行,端口發(fā)來的數(shù)據(jù)無法響應(yīng)。 怎么辦?怎么實(shí)現(xiàn):定時(shí)器執(zhí)行完一次之后,先處理端口的任務(wù)然后再執(zhí)行下一次定時(shí)器任務(wù) ? ? 代碼: $inner_http_worker = new Worker('http://0.0.0.0:1598'); $inner_http_worker->count ...
關(guān)于重構(gòu)項(xiàng)目后臺(tái) 用戶登陸? ? 是不是沒法使用原來那種php-fpm的session 自動(dòng)使用匹配 用webserver 重構(gòu)是不是只能走接口鑒權(quán)? 然后生成token 用token識(shí)別用戶的是否登陸? 和一系列的登陸信息。? 最近這兩天看到了官網(wǎng)的一個(gè)大神用workman 寫的Thinkworker框架? ?所以想用它把原來的TP? H+模板的后臺(tái)重構(gòu)下? 目前頁面基本已經(jīng)和數(shù)據(jù)基本已經(jīng)處理的差不多? 希望到時(shí)候...
$worker = new Worker('tcp://0.0.0.0:9090'); //http協(xié)議 //啟動(dòng)1個(gè)進(jìn)程對(duì)外提供服務(wù) $worker -> count = 1; Worker::$daemonize = true; Worker::$stdoutFile = '/tmp/stdout.log'; //增加一個(gè)屬性 $worker -> uidConnections = array(); ...
我的理解,當(dāng)worker->count大于1時(shí),會(huì)啟動(dòng)多個(gè)進(jìn)程處理客戶端的連接。 假設(shè)當(dāng)worker->count為2時(shí),會(huì)啟動(dòng)worker1和worker2兩個(gè)進(jìn)程, 多個(gè)客戶端連接上來時(shí),假設(shè)為以下的場景: worker1: A, B, C worker2: D, E 當(dāng)客戶端A要給客戶端D發(fā)消息時(shí),A如何獲得D的connection? 如果A和D是分別連到不同的進(jìn)程上,那互相之間應(yīng)該是無法直接通信的...