9

我正在运行一个应用程序的 PHP 前端,该应用程序对数据进行了大量工作并使用 Cassandra 作为数据存储。

但是我知道 PHP 不会为我提供某些计算所需的性能(以及管理需要存储在内存中的大量数据)

我想用 C++ 编写支持的东西并从 PHP 应用程序访问它。我试图找出连接两者的最佳方式。

我看过的一些选项:

  1. Thrift(一个自然的选择,因为我已经将它用于 Cassandra)
  2. Google 的协议缓冲区
  3. gSOAP
  4. 阿帕奇轴

以上只是我看的东西,我不限制自己。

传输到 PHP 应用程序的数据非常小,因此不需要流式传输。仅传输计算结果。

你们有什么感想?

4

3 回答 3

3

如果我是你,我会使用 thrift,没有意义引入另一个 RPC 框架。用你所拥有的和已经知道的。Thrift 让它变得如此简单(谷歌协议缓冲区也是如此,但你并不真的需要两种不同的机制)

于 2010-10-16T07:12:01.830 回答
2

您是否限制自己将 C++ 作为单独的应用程序?您是否考虑过直接将其与 PHP 接口?(即将一个 C++ 扩展链接到您的 PHP 应用程序中)。

我并不是说第二种方法一定比第一种更好,但无论如何你都应该考虑它,因为它提供了一些不同的权衡选择。例如,在 PHP 和 C++ 之间传递东西的延迟肯定会比当它们是动态链接的同一个应用程序时更高。

于 2010-09-22T05:26:36.330 回答
1

有关您的计算需要多少数据的更多详细信息将很有用。节俭似乎是一个合理的选择。您可以在 PHP、您的计算节点和 Cassandra 后端之间使用它。如果您的结果很小,那么 PHP 和计算节点之间的 RPC 传输不会产生太大的影响。

于 2010-10-16T06:27:18.613 回答