NNG(Nano Message Next Generation)是否定时自动发送一些心跳?



我使用NNG作为我的服务器间msg-queue。

背景:

  1. 我正在实现一对长时间的后台服务,它们与NNG通信;
  2. 协议:pair0 @ tcp;
  3. 有效载荷消息可能会在一秒钟或一天内出现;

我的问题:NNG会自动发送"心跳"吗?如果在特定的时间内没有产生msg,则定期向每个对等体发送msg以保持TCP连接的存活。

如果不是,我应该做"HeartBeat"由我自己?

BTW,这是我第一次使用NNG。我不知道是否有一个官方的/人口稠密的支持论坛,所以我问我的问题在这里。如果有这样的论坛,请告诉我。谢谢!

欢迎来到NNG & &;分布式处理

在任何情况下,我们都可以发送零大小的"app-level";心跳,如果我们希望我们的运输是坚如磐石证明是RTO

然而,NNG使用nn_setsockopt()-configurator选项{ ... | NN_RECONNECT_IVL | NN_RECONNECT_IVL_MAX | ... }来微调低级细节,包括失败/关闭的套接字的重新连接管理

完整呼叫签名为:

int nn_setsockopt(        int  sock,
int  level,
int  option,
const void *val,
size_t  sz
);

NN_RECONNECT_*-s的一些细节:

NN_RECONNECT_IVL
重连间隔(毫秒)。在传出连接关闭或失败后,套接字将在此毫秒后自动尝试重新连接。这是当时的起始值,在成功建立连接后的第一次重新连接尝试中使用。默认值是100。

NN_RECONNECT_IVL_MAX
最大重连间隔(毫秒)。尝试失败后的后续重新连接尝试以指数级增加的间隔(后退)进行,但间隔由此值限制。如果该值小于NN_RECONNECT_IVL,则不执行指数回退,并且每次重新连接间隔将完全由NN_RECONNECT_IVL决定。默认为0

最新更新