English 中文(简体)
使用php+齿轮人+节点js
原标题:Using php + gearman + node.js

我正在考虑用php建立一个网站,但其中有几个方面,如果以nde.js制成,效果会远远好得多。 同时,该网站的大部分需要保留在PHP。 这是因为许多功能已经在PHP中开发,而重新开发、测试等等将是一个大工程,坦率地说,该网站的这些部分在PHP中运行得非常好。

我正在考虑重建Norde.js中的部分,这些部分将获益于大多数在Norde.js的运行,然后让PHP将请求通过使用Gearman的Norde.js。 这样,我通过派遣更多的工人扫描规模,让齿轮工处理负荷分配。

我们的网站交通量很大,我担心齿轮夫能否应付这个负担。我想让这个问题保持富有成效,所以让我们主要关注以下可解决的要点:

  • Can gearman handle all of our expected load assuming we have the memory (potentially around 3000+ queued jobs at at time, with several thousand being processed per second)?
  • Would this run better if I just passed the requests to node.js using CURL, and if so, does node.js provide any way to distribute the load over multiple instances of a given script?
  • Can gearman be configured in a way that there is no single point of failure?
  • What are some issues that you guys can see arising both in terms of development and scaling?

我谈到这些广泛的问题,因此,任何人在看这篇文章时,都可以在一个地方收集广泛的信息,了解相互有重大影响的问题。

当然,我会测试所有这一切, 但我想收集尽可能多的信息 之前可能采取这样的行动。

编辑:我之所以使用变速器, 原因不在于它没有阻隔结构, 而是因为它的速度非常快。

最佳回答

我只能回答你关于吉尔曼的问题:

假定我们拥有记忆(可能时时约3000+排队工作, 每秒处理几千个),

< 强 > > 短 : 是

< 坚固 > 龙 < / 坚固 > : 所有东西都有其极限。 如果您的工作有效载荷过大, 您可能会遇到问题。 Gearman 将其队列存储在记忆中 。 如果您的有效载荷超过 Gearman 可用的内存数量, 您将会遇到问题 。

变速器的配置是否能够做到没有单一的失败点?

盖尔曼有一个插件/ 扩展/ 组件可以使用 MySQL 作为耐久性商店。 这样, 如果盖尔曼或机器本身倒下, 您可以将它右上移回到它剩下的位置。 如果其他工人倒下, 多个工人服务器可以帮助保持工作状态 。

问题回答

节点有一个 < a href=> "http://nodejs.org/docs/latest/api/ croup.html" rel="nofollow" > 群集模块 ,可以使基本负荷与n进程保持平衡。 您可能会发现它有用 。

诺德日- 兰的一个共同架构是让您的节点谈论 http, 然后使用某种负荷平衡方式, 例如 < a href="https://github.com/nodejitsu/node- http-proxy" rel= "nofollow" > https://github.com/substack/seaport" rel="nofolve" > service registration 。 我敢肯定, 其他地方的情况大致相同。 我对齿轮人说它是否“ 足够好” 不够了解, 但如果这是一般的想法的话, 我想象它会很好。 至少其他人会有兴趣听到它是如何发生的, 我肯定!

编辑: 记住, 数字剪切会阻断节点事件循环 。 如果您仔细想一想, 这一点是显而易见的, 但肯定有些东西要记住 。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签