素材阁

ZeroMQ 速查

共 23 条 ZeroMQ 常用模式,涵盖核心概念、通信模式、Python 示例、常用设置、适用场景。 支持搜索与分类筛选,点击即可复制。

核心概念

无 broker 的消息库。

命令说明
定位
模式即类型
消息语义
注意
连接关系

通信模式

经典组合。

命令说明
请求-应答(同步)
发布订阅(一对多,可过滤前缀)
管道(负载分散)
异步请求应答(可扩展/代理)
一对一独占连接

Python(pyzmq)示例

踩坑最少。

命令说明
安装
服务端(REP)
客户端(REQ)
发布订阅
多帧消息

常用设置

超时与轮询。

命令说明
收发超时(毫秒)
关闭时不等待未发送消息
多 socket 轮询
高水位(背压)

适用场景

何时选 ZeroMQ。

命令说明
场景
对比
代理
多语言

使用说明

ZeroMQ 消息模式速查:核心概念、通信模式、Python 示例、常用设置、适用场景;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:核心概念、通信模式、Python 示例、常用设置、适用场景。
  2. 点「模式 / 代码」列复制,替换地址与消息内容后使用。
  3. 先想清楚模式:请求应答 REQ/REP、发布订阅 PUB/SUB、管道 PUSH/PULL。
  4. SUB 端必须 SUBSCRIBE 主题(可空前缀接收全部),否则收不到消息。

常见问题

ZeroMQ 有 broker 吗?
没有。它是嵌入式的消息库,socket 直连,延迟极低,但也因此无内置持久化与消息堆积保证,需要可靠性时应选 Kafka/RabbitMQ/NATS。
为什么 SUB 收不到消息?
最常见原因是没设置订阅过滤器:sub.setsockopt(zmq.SUBSCRIBE, b"") 可接收全部;另外发布订阅有慢加入问题,晚连接的订阅者会漏掉之前的消息。
bind 和 connect 谁先谁后?
任一方 bind 监听、另一方 connect 均可,谁先都可以,ZeroMQ 会在连接时对齐;惯例服务端 bind、客户端 connect。

延伸阅读

相关工具