Tag: gearman

使用php + gearman + node.js

我正在考虑build立一个使用PHP的网站,但是它有几个方面,如果在node.js中做的话,性能会好很多。 同时,网站的大部分需要保留在PHP中。 这是因为很多function已经在PHP中开发出来了,而重新开发,testing等工作太大了,坦率地说,这些网站的这些部分在PHP中运行得非常好。 我正在考虑重buildnode.js中的部分,这将从node.js中运行最多的部分中受益,然后让PHP使用Gearman将请求传递给node.js。 通过这种方式,我通过启动更多的工作人员来扫描规模,并让齿轮人员处理负载分配。 我们的网站获得很多stream量,我担心,如果工人可以处理这个负载。 我不想让这个问题保持高效,所以我们主要关注以下几点: 假设我们拥有内存(可能大约有3000个以上的排队工作,每秒处理几千个工作),齿轮人员可以处理我们所有的预期负载吗? 如果我使用CURL将请求传递给node.js,那么运行情况会更好吗?如果是,node.js是否提供了将负载分配给给定脚本的多个实例的方法? 齿轮人员可以configuration成没有单点故障的方式吗? 在开发和扩展方面,你们可以看到哪些问题? 我正在处理这些广泛的问题,所以任何观看这篇文章的人都可以在一个地方收集各种信息,以便对彼此产生强烈的影响。 当然,我会testing所有这些,但是我想在可能进行这样的事情之前收集尽可能多的信息。 编辑:我使用齿轮的一个很大的原因不是因为它是非阻塞结构,而是因为它是纯粹的速度。

当客户端发送较大的有效负载

我有一个使用Gearman的问题,当我通过Gearman PHP扩展发送大型有效载荷时,将任务传输给工作人员的速度很慢。 事实上,我们没有发现有效载荷是那么大(30MB)。 一切(PHP,Gearman,节点)现在都在本地运行,所以networking访问不是瓶颈。 PHP脚本 这里是PHP客户端: ini_set('memory_limit', '1G'); $client= new GearmanClient(); $client->addServer('127.0.0.1', '4730'); $schema = file_get_contents('schema.json'); $data = file_get_contents('data.json'); $gearmanData = [ 'schema' => $schema, 'data' => $data ]; echo "Encoding in JSON the payload\n"; $gearmanDataString = json_encode($gearmanData, JSON_FORCE_OBJECT); echo "Sending job to Gearman\n"; // This line takes long to execute… $result = $client->doNormal("validateJsonSchema", $gearmanDataString); […]