将 Thrift 服务请求重定向到同一台机器上的 fork 进程 运行
Redirecting Thrift service requests to fork process running on same machines
我在 Linux 机器上用 c++ 和 运行 开发了 Thrift 服务器。如果客户端向 thrift 服务器发送请求,我的服务器将分叉一个进程,来自同一连接的并发请求应由分叉进程处理。
有什么方法可以将来自客户端的 thrift 请求重定向到 fork 进程吗?
您可以在服务器的分叉子项中处理 Thrift 客户端,但您必须编写自定义 Thrift 服务器才能做到这一点。
TLDR:当您调用 fork() 时,子进程会继承所有打开的文件描述符的副本。所以本质上,父级拥有的任何 Socket 都自动可供子级使用。虽然 none 的内置 Thrift 服务器当前派生完整的子进程来处理客户端连接,但有一个 Python 服务器可以做到。在给定进程中,Python 在用户代码中一次仅运行一个线程,因此分叉是获得并行性的唯一方法。另一方面,C++ 有线程(轻量级进程),因此现有的 C++ 服务器创建线程来横向扩展,而不是进程。
我在 Linux 机器上用 c++ 和 运行 开发了 Thrift 服务器。如果客户端向 thrift 服务器发送请求,我的服务器将分叉一个进程,来自同一连接的并发请求应由分叉进程处理。
有什么方法可以将来自客户端的 thrift 请求重定向到 fork 进程吗?
您可以在服务器的分叉子项中处理 Thrift 客户端,但您必须编写自定义 Thrift 服务器才能做到这一点。
TLDR:当您调用 fork() 时,子进程会继承所有打开的文件描述符的副本。所以本质上,父级拥有的任何 Socket 都自动可供子级使用。虽然 none 的内置 Thrift 服务器当前派生完整的子进程来处理客户端连接,但有一个 Python 服务器可以做到。在给定进程中,Python 在用户代码中一次仅运行一个线程,因此分叉是获得并行性的唯一方法。另一方面,C++ 有线程(轻量级进程),因此现有的 C++ 服务器创建线程来横向扩展,而不是进程。