2014-10-22 76 views
-1

我们已经使用rpcgen在Linux机器上创建rpc服务器(c语言)。 当有很多调用我们的程序时,它仍然会产生一个 线程请求。 从2004年我看到它是一个常见问题,有一个新的rpcgen(或其他genarator)解决了这个问题?rpcgen for Linux

感谢, 了Kobi

+0

我相信你的问题是边界线或者是题外话这里,因为你不显示任何代码。你也应该编辑你的问题来解释你的服务器在做什么。 – 2014-10-22 09:42:47

回答

0

rpcgen只会产生serialization程序。您的服务器可能被编码为具有多个线程。了解更多关于pthreads

你可能不应该有太多的线程(例如最多一打,而不是几千)。你可以设计你的程序来使用一些thread pool,或者简单地有一组固定的工作线程持续处理RPC请求(主线程只负责接受连接等)。

阅读rpc(3)。你可能会考虑在你的服务器中不使用svc_run,而是用线程自己做。请注意,如果您使用线程,则需要与mutex同步。

你也可以考虑JSONRPC,或者使你的C程序(例如使用libonion)一些专门的HTTP服务器和你的客户做HTTP请求(可能与libcurl)。另见this。你可能会考虑一个message passing架构,也许与Open-MPI

+0

关于rpcgen:在AIX和Solaris上,我设法创建了一个多线程服务器,没有任何更改生成的代码。 – kobi 2014-10-22 11:10:31

+0

然后或许尝试在某处找到更新的rpcgen ... – 2014-10-22 11:13:26

0

当心阳光版本被抛弃,寻找TIRPC