【问题标题】:Using C++ for backend calculations in a web app在 Web 应用程序中使用 C++ 进行后端计算
【发布时间】:2011-04-15 12:49:33
【问题描述】:

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

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

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

我看过的一些选项:

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

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

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

你们觉得呢?

【问题讨论】:

  • +1 提出一个好问题。我期待答案(顺便说一句,我喜欢 gSoap)
  • 谢谢,您喜欢 gSOAP 的哪些方面?

标签: c++ protocol-buffers thrift gsoap


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我考虑过使用 SWIG 添加它,但我认为将数据从 Cassandra 中获取而不是保存到我的 C++ 应用程序中,进行计算并从 PHP 查询结果更有意义。
    • @Stephen:最终当然是你的选择,我只是想强调这也是一条有效的途径
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 2015-11-04
      • 2011-12-07
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多