PHP排队系统

我有一个设置,其中有多个Apache / PHP服务器从请求中收集数据 – 主要是获取参数并对其进行处理并将其保存到数据库或平面文件中。 数据库是好的,因为每个人都可以独立连接,并执行更新,但与平面文件,我正在使用一个自定义的队列,将所有数据发送到平面文件所在的一个服务器。 我的问题是:

  1. 有什么好的和可靠的日志文件处理系统我可以使用。 我基本上需要汇总日志文件中的数据,并将其保存到数据库中。 如果这是可能的,我可以简单地使用nginx来logging所有的请求(access.log)并运行后台守护进程来压缩日志。 我收到大约1000+个请求/秒,所以我肯定需要一个非常强大的系统

  2. 有没有什么好的与PHP兼容的队列系统,哪些在多台机器上共享。 一个主要通过memcache的解决scheme,所有信息都可以从任何节点添加,并且可以在任何节点以非常高的速度访问。 我需要一个可以每秒从队列中取出大量数据的系统,对它进行处理并用它来做必要的事情(保存在数据库中)。 我不认为在单个服务器上的队列是非常可扩展的,因为我需要做的是保存数据之前的某种级别的聚合。 由于数据可以来自任何PHP服务器(循环方法),我在MySQL中进行处理(因此使用复杂的查询),如果我可以在一台服务器上收集所有数据并让它进行一些处理并保存在数据库中,这将减轻我的工作

感谢Sparsh

您是否真的build议您将访问日志用作asynchronous消息处理系统的数据基础? 如果是这样 – 请不要。 这不是事务安全的,它不是为了并发访问。

我已经多次阅读您的问题,并且不清楚您尝试处理的地点和原因。

有没有什么好的与PHP兼容的队列系统,哪些在多台机器上共享

好的 – 这是一个正确的问题。 我很久以前用过的一个解决scheme就是使用BSD LPD系统来pipe理工作队列,但是如果我今天正在实施一个解决scheme,那么我会考虑rabbitmq , beanstalkd , sam …