gpt4 book ai didi

c - SunRPC 启用单向消息传递(流/批处理?)

转载 作者:IT王子 更新时间:2023-10-29 00:32:25 26 4
gpt4 key购买 nike

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

我们的 RPC 调用不需要返回值,尽管根据 RPC 的性质,无论如何总是会发送一个 ack。这引入了最近成为问题的延迟 - 当通过可靠传输 (TCP) 运行时,我们希望避免 RPC 回复引入的延迟。

文档 here表示 Solaris 具有启用此功能的“oneway”关键字,尽管 Linux/glibc 似乎不支持此功能。

有没有什么方法可以在 Linux 上使用 SunRPC 启用“流式”或单向消息传递?

最佳答案

为了获得异步(或“批处理”)RPC 调用,必须对标准 clnt_call() 调用进行两处更改:参数是指向 XDR 函数的指针回复数据结构必须为 NULL 并且超时参数必须为零,即

static struct timeval ZERO_TIMEOUT = { 0, 0 };
static char clnt_res;
memset((char*)&clnt_res, 0, 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) {
...
}

关于c - SunRPC 启用单向消息传递(流/批处理?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com