1

我在后端有一个带有 C++ API 的 RESTful Web 服务。我正在使用 FastCGI 库来促进 REST 接口。我的 C++ API 有多个可以独立使用的函数。我正在寻找一种尽可能快的方法。以下是我得到的一些想法:

  1. 有一个 FastCGI 应用程序获取要执行的函数,执行该函数并返回输出。这样,即使下一次调用是针对不同的独立函数,API 调用也会一直等待直到一个“函数”完成。

  2. 拥有多个 FastCGI 应用程序,每个应用程序只能从 API 访问一个函数,每个应用程序都获取该特定应用程序的输入并单独返回该特定应用程序的输出。

通过这种方式,我可以对所有不同的函数进行并发调用,并且将为我拥有的每个函数创建单独的进程队列,而不是为 FastCGI 应用程序提供一个由对不同独立函数的调用组成的通用进程队列。

虽然这看起来会更好,但我不确定是否可以实现这样的系统 - 即让许多 FastCGI 应用程序从同一台服务器并行运行。如果可能的话,有人可以告诉我如何实现吗?

4

1 回答 1

2

每个 FastCGI 应用程序都是一个单独的程序,循环运行,并以 FastCGI 规范定义的二进制协议与 Apache 通信。唯一可能的并发问题与您在运行并发 CGI 或 PHP 请求时遇到的并发问题相同,只有一个例外:由于 FastCGI 进程不会终止,因此必须仔细管理任何有限的资源。例如,如果您只有一个数据库服务器的 10 个客户端许可证,那么您不能有 11 个 FastCGI 进程使用该数据库,除非您管理的连接比“开始时打开,结束时关闭”方法更常用CGI 或 PHP。

于 2012-05-29T02:37:36.153 回答