SunRPC支持单向通讯stream媒体/批处理?

我们有一些服务使用Linux上的SunRPC(RHEL 4/5),我们希望加快速度。

我们的RPC调用不需要返回值,但是由于RPC的性质,总是发送ack。 这引入了最近成为问题的延迟 – 当运行在可靠的传输(TCP)上时,我们希望避免RPC应答引起的延迟。

Docs 在这里表示Solaris有“oneway”关键字,但是Linux / glibc似乎不支持这一点。

我们可以通过Linux上的SunRPC实现“stream式传输”或单向消息传递吗?

如何同步一个popup窗口总是在另一个popup窗口之上?

是SIGSEGV交付给每个线程?

摄像头访问在C + +

删除列表视图中的列数据

如何在win32 c ++中打印预览?

包装第三方DLL

这个expression意味着什么? (C语言中的SetConsoleTextAttribute函数

在visual c ++项目中添加文件

如何创build从C#到C + +委托,将IEnumerable作为参数与SWIG的通过?

找出某个应用程序/命令在Linux上是否可用?

对于标准的clnt_call()调用,为了获得一个异步的(或“批量的”)RPC调用,必须做两个改变:对于应答数据结构来说,指向XDR函数的参数必须是NULL ,超时参数必须为零,即,

static struct timeval ZERO_TIMEOUT = { 0,0 }; static char clnt_res; memset((char*)&clnt_res,sizeof(clnt_res); if (clnt_call(clnt,messageType,(xdrproc_t)xdr_messageType_t,(caddr_t)argp,(xdrproc_t)NULL,(caddr_t)&clnt_res,ZERO_TIMEOUT) != RPC_SUCCESS) { ... }

如果您的RPC库不支持“单向”通信,那么您总是可以使用线程池模式来仿真程序中的“火灾和遗忘”类型的调用。 而不是直接发送远程调用(并因此阻塞,直到您收到答案),您排队一个命令 ,远程调用一个不同的线程,并允许主程序继续它的执行。

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....