像我們這種分布式的框架,針對sendToUid,在某個(gè)進(jìn)程中其實(shí)無法感知到具體的uid綁定的連接是在哪個(gè)服務(wù)節(jié)點(diǎn)的進(jìn)程中的,當(dāng)前的實(shí)現(xiàn)是應(yīng)該屬于廣播式的把發(fā)送指令廣播到所有的gateway進(jìn)程中,讓他們自己判斷當(dāng)前的進(jìn)程中是否存在需要被發(fā)送的uid所綁定的鏈接,從而完成消息發(fā)送,但是這樣一來,如果作為一款I(lǐng)M的應(yīng)用, 假如: 10萬的用戶在線量,平均每個(gè)用戶每秒發(fā)送一條,那么按照這樣廣播的發(fā)送消息方式。 是不是意味...
現(xiàn)在線上是用的Gateway,分布式架構(gòu),Register,Connect,Worker都分開容器部署,現(xiàn)在有個(gè)很奇怪的現(xiàn)象,關(guān)于worker進(jìn)程的容器主機(jī)內(nèi)存會一直持續(xù)增長,連續(xù)跑3天 內(nèi)存使用多占了2個(gè)G,但是系統(tǒng)監(jiān)控和atop查看到 整個(gè)php的worker進(jìn)程一直都是在 300-400M左右,總之都不會超過1G,但是我一旦重啟worker進(jìn)程之后立馬可用內(nèi)存多出來2個(gè)G。。。。。,完全找不到頭緒,進(jìn)程內(nèi)存占用...
如題,Gateway負(fù)責(zé)與客戶端進(jìn)行通信,那么是否worker進(jìn)程的服務(wù)器不需要內(nèi)核調(diào)優(yōu)?...
"continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in file /data/gateway/remote/vendor/workerman/workerman/Protocols/Http.php on line 555 ? 是不是...
因?yàn)?現(xiàn)在BS進(jìn)程中儲存了一些游戲配置數(shù)據(jù),但是在做更新表時(shí)候我想通過reload的方式刷掉舊配置信息而保證連接服務(wù)關(guān)閉,單機(jī)的話reload還好,但是分布式而且還是放在容器中我感覺實(shí)在想不出方法統(tǒng)一執(zhí)行reload的方法了。。。求救...
如題,前段時(shí)間突然遇到了需要GateWay這邊作為RPC服務(wù)端了,之前業(yè)務(wù)一直是作為RPC客戶端去調(diào)Yii2那邊的?但是業(yè)務(wù)代碼里好多都是獲取綁定的UID來處理后續(xù)的邏輯的。。。 ? 現(xiàn)在的需求是,gateway這邊是負(fù)責(zé)游戲邏輯的,但是在充值的時(shí)候需要給用戶添加很多復(fù)雜的東西,但是充值的回調(diào)又是在HTTP服務(wù)這邊,這樣一來,如果不用RPC的話感覺搬磚的工作量很大,而且還很容易出錯,所以請問各位大佬有沒有辦法在gat...
需求是這樣的,register一類容器,gate和bs進(jìn)程分一類,現(xiàn)在每個(gè)集群保持一個(gè)register節(jié)點(diǎn),暫時(shí)是通過數(shù)據(jù)庫來持久化register節(jié)點(diǎn)的信息,方便gate和bs進(jìn)程通過標(biāo)簽找到對應(yīng)集群的register,但是現(xiàn)在感覺數(shù)據(jù)庫持久有點(diǎn)僵硬,而且也是寫在Woker::run之前的,不太準(zhǔn)確,想通過zookeeper來感知register服務(wù)狀態(tài),不知道注冊服務(wù)和停止服務(wù)應(yīng)該寫在Woker哪個(gè)方法中...
內(nèi)核優(yōu)化和ulimit都按照官方文檔的設(shè)置了 ? php版本7.0和7.1都試過 event拓展也按照官方文檔pecl安裝和選項(xiàng)成功 壓測鏈接數(shù)就是過不了2000,頭好大啊 GateWay? gate 和bs? 都是 設(shè)置4個(gè)進(jìn)程 ? 需要增大這個(gè)進(jìn)程數(shù)量嗎?...
之前提到了在docker中內(nèi)核調(diào)優(yōu)的問題,后面由于在容器鏡像中會有部分限制sysctl的設(shè)置,直接使用了net模式就解決了,現(xiàn)在遇到的問題是在docker鏡像中無法 -d守護(hù)進(jìn)程運(yùn)行,無限 start in DAEMON mode,就是起不來,不加 -d守護(hù)進(jìn)程的話就毫無影響 1.初期以為是沒有 /bin/bash的原因,運(yùn)行完 start -d后,容器就關(guān)閉了,后面把commnd前置了 /bin/bash之后沒有關(guān)...
因?yàn)樯婕暗椒植技軜?gòu),用docker的話方便部署一點(diǎn),但是那個(gè)內(nèi)核調(diào)優(yōu)這塊怎么處理?到底在docker容器中調(diào)整內(nèi)核的配置還是說只要主機(jī)的內(nèi)核配置設(shè)置好就OK了?(我下載那個(gè)centos鏡像還沒有這個(gè)/etc/sysctl.conf文件怎么破。。。。。。 ) 而且在內(nèi)核調(diào)優(yōu)章節(jié)中 有一點(diǎn)是設(shè)置...
在onMessage中把業(yè)務(wù)邏輯拆分出來比較好的實(shí)現(xiàn)方式是什么? 在同一進(jìn)程中,如何做到連接之間不相互污染數(shù)據(jù)? ================================ 剛剛測試了一下同一個(gè)進(jìn)程中在其中的一個(gè)連接發(fā)送阻塞標(biāo)識信息,執(zhí)行for600W次的file_put_contents寫入操作,其他連接發(fā)送消息會被掛起,甚至?xí)霈F(xiàn)超時(shí), process_timeout: #1 /data/gateway/g...
因?yàn)樽罱赡軙x擇用PHP作為游戲服務(wù)器,其實(shí)游戲整體實(shí)時(shí)交互可能要求并不高,確實(shí)可以用短連接API來完成功能,但是游戲前端以前用慣了websocket,而且游戲可能會出現(xiàn)一些玩家實(shí)時(shí)聊天,在這樣的情況下,可能需要服務(wù)端搭建這樣的一個(gè)websocket服務(wù)。因?yàn)橹耙恢睕]有接觸過這種長連接的應(yīng)用場景,所以在這里想問問老鳥幫忙解惑一下這方面的問題,謝謝了哈! 本身想結(jié)合TP或者YII這類常用的框架,因?yàn)榭蚣軒淼谋憷?..