同一服务器上的多个并发FastCGI应用程序

时间:2012-05-28 23:40:43

标签: c++ api rest fastcgi

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

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

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

  3. 这样我就可以对所有不同的函数进行并发调用,并为每个函数创建单独的进程队列,而不是为FastCGI应用程序提供一个通用进程队列,包括对不同独立函数的调用。

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

1 个答案:

答案 0 :(得分:2)

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