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

GatewayWorker速度很慢

bengore

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

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

5909 5 0
5個回答

walkor 打賞

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

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

  • bengore 2018-11-30

    start_gateway.php:

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

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

    // 自動加載類
    require_once __DIR__ . '/../../vendor/autoload.php';

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

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

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

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

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

bengore

原來是Gateway::bindUid()這句出現(xiàn)問題,去掉這句綁定Uid,直接用Gateway::isOnline()查詢,馬上就快了,綁定Uid為什么會這么耗時呢?

  • 暫無評論
walkor 打賞

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

  • bengore 2018-12-01

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

  • bengore 2018-12-01

    后來不用綁定Uid,直接通過clientid查詢在線狀態(tài),馬上就快了

  • walkor 2018-12-01

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

  • bengore 2018-12-03

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

bengore

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

[attach]1471[/attach]
?

  • walkor 2018-12-03

    看下register的1238端口安全組和防火墻開了沒。
    在gatewayClient上 telnet ip 1238 看下能否連上

  • bengore 2018-12-03

    在gatewayClient上 telnet ip 1238 可以連上

bengore

[attach]1472[/attach]
?

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??