【发布时间】:2018-03-30 23:09:56
【问题描述】:
如果在使用 REQ / REP 套接字时,我在指南或 RFC 中找不到任何地方,假设我通过 REQ 套接字成功发送消息,它是否保证 REP 套接字收到消息?
如果不是,当 REP 套接字上的 recv 调用未阻塞(根据 RFC)时,如何使用超时引入单个客户端/服务器可靠性。
【问题讨论】:
如果在使用 REQ / REP 套接字时,我在指南或 RFC 中找不到任何地方,假设我通过 REQ 套接字成功发送消息,它是否保证 REP 套接字收到消息?
如果不是,当 REP 套接字上的 recv 调用未阻塞(根据 RFC)时,如何使用超时引入单个客户端/服务器可靠性。
【问题讨论】:
如果这听起来很奇怪,请随时重新阅读 Zen-of-Zero 并享受这几条设计原则,这些原则使 ZeroMQ 成为如此低延迟、高性能的框架。
有一个间接保证 - 原子传递 - 消息要么完整无误地传递,要么根本不传递。也就是说,在接收方没有任何形式的残缺不全的情况,但是,如果消息能够通过,则对发送方没有任何保证。
在 ZeroMQ 普通协议之上,用户实现的更高层有很大的空间,这可能会引入时间控制的重新发送请求或其他强化交付强制策略的方式。
【讨论】: