rpcgen for Linux
Posted
技术标签:
【中文标题】rpcgen for Linux【英文标题】: 【发布时间】:2014-10-22 09:19:42 【问题描述】:我们已经使用 rpcgen 在 Linux 机器(c 语言)上创建了一个 rpc 服务器。 当我们的程序有很多调用时,它仍然会导致一个 线程请求。 我看到这是 2004 年的常见问题,有一个新的 rpcgen(或其他生成器)解决了这个问题?
谢谢, 科比
【问题讨论】:
我相信你的问题是边界线或者可能是题外话,因为你没有显示任何代码。您还应该编辑您的问题,以详细说明您的服务器在做什么。 【参考方案1】:rpcgen
将简单地生成serialization 例程。您的服务器可能被编码为具有多个线程。详细了解pthreads。
您可能不应该有太多线程(例如,最多十几个,而不是数千个)。您可以将您的程序设计为使用一些thread pool,或者只是让一组固定的工作线程不断处理 RPC 请求(主线程只负责接受连接等)。
阅读rpc(3)。你可能会考虑不在你的服务器中使用svc_run
,而是用你自己的方式使用线程。请注意,如果您使用线程,则需要同步,可能与mutex 同步。
您也可以考虑JSONRPC,或者让您的C 程序成为一些专门的HTTP 服务器(例如使用libonion)并让您的客户端执行HTTP 请求(可能使用libcurl)。另见this。您可能会考虑使用message passing 架构,或许使用Open-MPI。
【讨论】:
关于 rpcgen:在 AIX 和 Solaris 上,我设法创建了一个多线程服务器,而无需对生成的代码进行任何更改。【参考方案2】:注意sun版被弃用,找tirpc
【讨论】:
以上是关于rpcgen for Linux的主要内容,如果未能解决你的问题,请参考以下文章