国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

GatewayWorker速度很慢

bengore

大佬,GatewayWorker和GatewayClient在百度云的不同服務(wù)器,通過(guò)內(nèi)網(wǎng)IP連接,每次打開(kāi)頁(yè)面都要等5秒左右的時(shí)間,就算一個(gè)客戶(hù)端都沒(méi)有,也是要等很久,有可能是什么原因呢?

在GatewayClient服務(wù)器上ping GatewayWorker服務(wù)器 速度少于1ms

6028 5 0
5個(gè)回答

walkor 打賞

如果GatewayClient和GatewayWorker不是在同一臺(tái)服務(wù)器上,則需要先將start_gateway.php中的lanIp改成當(dāng)前服務(wù)器的內(nèi)網(wǎng)ip(如果不在一個(gè)內(nèi)網(wǎng)可改成公網(wǎng)ip)。注意,無(wú)論何時(shí)lanIp都不能寫(xiě)成0.0.0.0,否則將無(wú)法通訊。
如果GatewayClient和GatewayWorker不是在同一臺(tái)服務(wù)器上,還要設(shè)置防火墻(云服務(wù)器的話(huà)還要設(shè)置安全組)讓以下端口可以被GatewayClient所在服務(wù)器訪(fǎng)問(wèn):
1、start_gateway.php中的$gateway->startPort起始的幾個(gè)端口(要開(kāi)放的端口個(gè)數(shù)和$gateway->count有關(guān))。
2、start_register.php中的Register服務(wù)端口 反之如果GatewayClient和GatewayWorker在同一臺(tái)服務(wù)器上運(yùn)行,則不用做任何更改,直接按照示例使用GatewayClient即可。

摘自手冊(cè)?http://doc2.workerman.net/push-in-other-project.html

  • bengore 2018-11-30

    start_gateway.php:

    // gateway 進(jìn)程,這里使用Text協(xié)議,可以用telnet測(cè)試
    $gateway = new Gateway("tcp://0.0.0.0:8282");
    // gateway名稱(chēng),status方便查看
    $gateway->name = 'YourAppGateway';
    // gateway進(jìn)程數(shù)
    $gateway->count = 4;
    // 本機(jī)ip,分布式部署時(shí)使用內(nèi)網(wǎng)ip
    $gateway->lanIp = '172.16.0.5';
    // 內(nèi)部通訊起始端口,假如$gateway->count=4,起始端口為4000
    // 則一般會(huì)使用4000 4001 4002 4003 4個(gè)端口作為內(nèi)部通訊端口
    $gateway->startPort = 2900;
    // 服務(wù)注冊(cè)地址
    $gateway->registerAddress = '127.0.0.1:1238';

    start_register.php:
    use \Workerman\Worker;
    use \GatewayWorker\Register;

    // 自動(dòng)加載類(lèi)
    require_once __DIR__ . '/../../vendor/autoload.php';

    // register 必須是text協(xié)議
    $register = new Register('text://0.0.0.0:1238');

    // 如果不是在根目錄啟動(dòng),則運(yùn)行runAll方法
    if(!defined('GLOBAL_START'))
    {
    Worker::runAll();
    }

    GatewayClient的業(yè)務(wù)頁(yè)面用了查詢(xún)客戶(hù)端是否在線(xiàn):

    Gateway::bindUid($client_id, $macaddress);
    if( !Gateway::isUidOnline($macaddress) ){
    $online = '<span class="offline">不在線(xiàn)</span>';
    }else{
    $online = '<span class="online">在線(xiàn)</span>';
    }

    GatewayClient的業(yè)務(wù)頁(yè)面每次打開(kāi)都load比較久才能看到客戶(hù)端的在線(xiàn)情況,而且曾經(jīng)登陸過(guò)客戶(hù)端數(shù)量越多,load的時(shí)間也越久,目前5個(gè)客戶(hù)端登陸過(guò),等大概6s,如果以后幾百上千,那不是完蛋了。

bengore

原來(lái)是Gateway::bindUid()這句出現(xiàn)問(wèn)題,去掉這句綁定Uid,直接用Gateway::isOnline()查詢(xún),馬上就快了,綁定Uid為什么會(huì)這么耗時(shí)呢?

  • 暫無(wú)評(píng)論
walkor 打賞

我貼的第1點(diǎn)防火墻安全組那里看下做了沒(méi)?你的配置對(duì)應(yīng)的端口應(yīng)該是2900 2901 2902 2903,請(qǐng)檢查下。
手冊(cè)上的注意事項(xiàng)請(qǐng)務(wù)必確認(rèn)檢查,這樣你會(huì)很省時(shí)間

  • bengore 2018-12-01

    其實(shí)都有的,因?yàn)槭窃跍y(cè)試階段,防火墻關(guān)閉,安全組是全放開(kāi)的,但就是綁定Uid特別耗時(shí),我是在同一個(gè)頁(yè)面綁定多個(gè)Uid,然后查詢(xún)一個(gè)個(gè)Uid的在線(xiàn)狀態(tài)的

  • bengore 2018-12-01

    后來(lái)不用綁定Uid,直接通過(guò)clientid查詢(xún)?cè)诰€(xiàn)狀態(tài),馬上就快了

  • walkor 2018-12-01

    進(jìn)入到bindUid函數(shù)里找下看下那行代碼執(zhí)行的慢

  • bengore 2018-12-03

    @1:今天調(diào)試了下,發(fā)現(xiàn)原來(lái)是isUidOnline($uid);這句慢,getBufferFromAllGateway($gateway_data);因?yàn)檎{(diào)用了這個(gè)function。

bengore

今天調(diào)試了一下,發(fā)現(xiàn)在GatewayClient的Gateway.php里面,耗時(shí)的是isUidOnline($uid);這句,
isUidOnline($uid);調(diào)用getClientIdByUid($uid);
getClientIdByUid($uid);調(diào)用getBufferFromAllGateway($gateway_data);
來(lái)到getBufferFromAllGateway($gateway_data);就很慢了,基本上查詢(xún)一個(gè)Uid差不多1秒鐘,查詢(xún)n個(gè)就是n秒鐘。
getBufferFromAllGateway($gateway_data);這個(gè)function,好復(fù)雜,就沒(méi)繼續(xù)看下去了。
?

[attach]1471[/attach]
?

  • walkor 2018-12-03

    看下register的1238端口安全組和防火墻開(kāi)了沒(méi)。
    在gatewayClient上 telnet ip 1238 看下能否連上

  • bengore 2018-12-03

    在gatewayClient上 telnet ip 1238 可以連上

bengore

[attach]1472[/attach]
?

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??