客戶端發(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";
}