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

GateWayWorker 如何控制流量

77706557

客戶端發(fā)送消息密集的話,服務(wù)端就會(huì)報(bào)SendBufferToWorker fail.May be the send buffer are Overflow.
并且已經(jīng)修改了php.ini 配置 Memory_limit=1024M.
因businessworker有寫(xiě)Mysql操作,會(huì)導(dǎo)致阻塞。
請(qǐng)問(wèn)如何增加流量控制?

// gateway 進(jìn)程,這里使用Text協(xié)議,可以用telnet測(cè)試
$gateway = new Gateway("tcp://0.0.0.0:8282");
// gateway名稱,status方便查看
$gateway->name = 'YourAppGateway';
// gateway進(jìn)程數(shù)
$gateway->count = 4;
// 本機(jī)ip,分布式部署時(shí)使用內(nèi)網(wǎng)ip
$gateway->lanIp = '127.0.0.1';
// 內(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';
$gateway->maxSendBufferSize=4_1024_10324;
$gateway->onBufferFull = function($connection)
{
    $connection->pauseRecv();
    echo "bufferFull and do not send again\n";
};

$worker->onBufferDrain = function($connection)
{
    $connection->pauseRecv();
    echo "buffer drain and continue send\n";
}
3843 1 0
1個(gè)回答

walkor 打賞

報(bào)這個(gè)錯(cuò)是因?yàn)闃I(yè)務(wù)處理請(qǐng)求速度小于客戶端發(fā)送請(qǐng)求速度,導(dǎo)致消息積壓在gateway到businessWorker的緩沖區(qū),時(shí)間長(zhǎng)了緩沖區(qū)滿了就報(bào)錯(cuò)了。

目前沒(méi)有辦法檢測(cè)到gateway到businessWorker緩沖區(qū)滿的事件,解決辦法是加快服務(wù)端業(yè)務(wù)處理速度,或者降低客戶端發(fā)送請(qǐng)求的速度。

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