我使用 NNG 作为我的服务器间消息队列。
背景:
我的问题: 如果在特定时间内没有生成消息,NNG 是否会自动定期向每个对等点传输“心跳”消息以保持 TCP 连接处于活动状态?
如果不是,我应该自己做“HeartBeat”吗?
顺便说一句,这是我第一次使用 NNG。我不知道是否有官方/填充的支持论坛,所以我在这里问我的问题。
欢迎来到 NNG 和 分布式处理
如果我们希望我们的传输坚如磐石,被证明是 RTO,那么在任何情况下我们都可以发送零大小的“应用程序级”心跳
然而,NNG 使用
nn_setsockopt()
配置器选项 { ... | 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