0

我有一个系统,通过 HTTP 调用我的 PHP 代码(生产者)获取请求。此代码将请求参数添加到 MYSQL(queue) 中的表中。然后由 java 程序(消费者)获取和处理。在我的第一个实现中,生产者和消费者都在 PHP(使用 MYSQL 队列)中。然后随着负载的增加,这被证明是低效的,所以我制作了消费者 java。现在我认为从我的 java 应用程序中轮询队列的 MYSQL 表效率低下(MYSQL 进程的 cpu 使用率很高)。有没有更好的方法来实现这个队列(在 PHP 代码和 Java 应用程序之间共享内存或其他东西)?

4

1 回答 1

0

是的,你有很多选择。第一个显然是将其转换为客户端-服务器服务,并在它们之间传递文本或二进制消息。如果你是一个受虐狂,或者更简单的 REST 服务,或者 CORBA / COM+ 和其他二进制序列化的人,你可能想研究 web 服务。然后是各种队列,如 MQseries、RabbitMQ 等。有时中间人足够快、足够高效,或者直接调用就足够了。

如果您的平台位于同一服务器或集群中,则下一个是更直接的链接,例如JavaBridge和其他(搜索“java php bridge”,会出现几个。甚至还有一个用 Java 编写的 PHP 解释器) JVM,它为您提供了两者之间的完全兼容性,这可能会为您解决问题。

于 2011-05-07T10:00:06.103 回答