31/EXPAIR
ZeroMQ 排他对 (Exclusive Pair)
- 状态:稳定
- 编辑:Pieter Hintjens ph@imatix.com
本文档规定了 ZeroMQ 排他对模式(Exclusive Pair)的语义,该模式涵盖 PAIR 套接字类型。本规范旨在指导此套接字类型的实现,以便用户能够依赖可靠的语义。
序言
版权所有 (c) 2013 iMatix Corporation.
本规范是自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证(或者您选择的任何更高版本)的条款重新分发和/或修改它。发布本规范是希望它有用,但没有任何担保;甚至不包括适销性或特定用途适用性的默示担保。有关更多详细信息,请参阅 GNU 通用公共许可证。您应该随此程序收到一份 GNU 通用公共许可证的副本;如果未收到,请参见 https://gnu.ac.cn/licenses。
本规范是一个自由开放的标准,受数字标准组织 (Digital Standards Organization) 的共识导向规范系统 (Consensus-Oriented Specification System) 管辖。
本文档中的关键词“MUST (必须)”、“MUST NOT (禁止)”、“REQUIRED (需要)”、“SHALL (应)”、“SHALL NOT (不应)”、“SHOULD (应该)”、“SHOULD NOT (不应)”、“RECOMMENDED (推荐)”、“MAY (可以)”和“OPTIONAL (可选)”的解释方式参见RFC 2119。
目标
本规范旨在正式记录 PAIR 套接字类型的名称和预期行为,PAIR 套接字类型构成了 ZeroMQ 排他对模式。此套接字类型的符合性实现应该 (SHOULD) 遵守本规范,从而确保应用程序能够依赖可预测的行为。本规范不针对特定传输方式,但并非所有行为都能在所有传输方式上重现。
此模式的总体目标
PAIR 不是通用套接字,而是用于两个对等方在架构上稳定的特定用例。这通常将 PAIR 的使用限制在单个进程内,用于线程间通信。
PAIR 套接字类型
一般行为
- 可以 (MAY) 连接到至多一个 PAIR 对等方,并且可以 (MAY) 同时发送和接收消息。
- 不应 (SHALL NOT) 以任何方式过滤或修改传出或传入消息。
- 应 (SHALL) 为其对等方维护一个双队列,允许传出和传入消息独立排队。
- 在启动与对等方的传出连接时,应 (SHALL) 创建一个双队列,无论连接是否建立,都应 (SHALL) 维护该双队列。
- 当对等方连接到它时,应 (SHALL) 创建一个双队列。如果该对等方断开连接,PAIR 套接字应 (SHALL) 销毁其双队列并应 (SHALL) 丢弃其中包含的任何消息。
- 应该 (SHOULD) 将传入和传出队列的大小限制在运行时可配置的范围内。
处理传出消息
- 仅当其传出队列未满时,应 (SHALL) 将其对等方视为可用。
- 当没有可用对等方时,应 (SHALL) 阻塞发送,或返回适当的错误。
- 当没有可用对等方时,不应 (SHALL NOT) 接受更多消息。
- 不应 (SHALL NOT) 丢弃无法排队的消息。
处理传入消息
- 如果存在其单个对等方,应 (SHALL) 从其接收传入消息。
- 应 (SHALL) 将这些消息传递给其调用应用程序。
安全方面
本规范没有安全方面的内容。