ZeroMQ

ZeroMQ #

zeromq/libzmq Github stars Github forks Language Last Tag Last commit

ZeroMQ 只是一个网络编程的 Pattern 库,将常见的网络请求形式(分组管理,链接管理,发布订阅等)模式化、组件化,简而言之 socket 之上、MQ 之下。对于 MQ 来说,网络传输只是它的一部分,更多需要处理的是消息存储、路由、Broker 服务发现和查找、事务、消费模式(ack、重投等)、集群服务等。


brokerless #

The philosophy of ZeroMQ starts with the zero. The zero is for zero broker (ZeroMQ is brokerless), zero latency, zero cost (it’s free), and zero administration.

这里的 broker 指的是 “消息中间件 / 消息代理服务器”—— 一个位于通信两端之间的独立服务端组件,负责:

  • 接收客户端的消息并转发 / 路由到目标(队列、主题、订阅者等)
  • 维护队列 / 主题、连接、订阅关系
  • 处理持久化、确认、重试、鉴权、限流等

像 RabbitMQ、ActiveMQ、Kafka(更像分布式日志,但也充当代理)都属于有 broker 的体系。

ZeroMQ 说 “zero broker / brokerless”,意思是:

  • 没有必须依赖的中心化代理服务器;应用进程之间可以端到端直连通信。
  • 路由/模式由库和你的程序来决定(REQ/REP、PUB/SUB、PUSH/PULL 等),你也可以用它搭一个可选的 “代理/路由器”,但不是必需。

优缺点一眼看懂:

  • ✅ 更少的网络跳数与开销、运维简单、低延迟。
  • ⚠️ 需要你自己处理服务发现、故障恢复、消息持久化、背压等,复杂需求时往往还是会引入自建的代理 / 网关来补齐能力。

本文访问量

本站总访问量

本站总访客数