ZeroMQ的模式-综述

简介:

通过对Guide的阅读,可以发现ZeroMQ对这个世界中消息传输的模式进行了很好的抽象。为了描述模式,0mq定义了不同的socket。 0mq socket是0mq世界的东西,跟传统世界的socket是不一样的。

我们知道,传统的socket其实就是访问下面两种(TCP & UDP)对象的同步的接口:

  1. 面向连接的可靠字节流(SOCK_STREAM)
  2. 无连接的不可靠的数据报文(SOCK_DGRAM)

所以你可以说传统socket传输的是字节流或者独立的报文。

而0mq的socket传输的是消息(Message)。它是对异步消息队列(MQ)的一种抽象。官方的原话是:

ØMQ sockets present an abstraction of an asynchronous message queue, with the exact queueing semantics depending on the socket type in use.  

异步的意思在这里指的是物理连接的创建、销毁、重连、传输对于用户来说都是透明的,这些东西都由0mq组织好了。它传输的是独立的消息队列隐含的意思是万一消息无法到达对端则可能会被排队。

除了传统socket实现的一对一多对一以及一对多(广播)外,0mq的socket还可以用zmq_connect()发起连接到多个对端,并同时接受从多个用zmq_bind()绑定了0mq-socket的对端发起的链接,从而实现多对多

0mq归纳的模式有四种

  1. Request-reply Pattern
  2. Publish-subscribe Pattern
  3. Pipeline Pattern
  4. Exclusive pair Pattern
我想搞懂了这些模式,可能也就理解了zeromq的精髓和用法。只有这样才能灵活地、根据场景使用不同的模式,利用zeromq快速搭建网络拓扑。
目录
相关文章
|
2月前
|
消息中间件 负载均衡 监控
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
252 1
|
22天前
|
存储 负载均衡 网络协议
ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
【4月更文挑战第10天】ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
46 1
|
2月前
|
消息中间件 存储 监控
【ZeroMQ的SUB视角】深入探讨订阅者模式、C++编程实践与底层机制
【ZeroMQ的SUB视角】深入探讨订阅者模式、C++编程实践与底层机制
142 1
|
2月前
|
消息中间件 监控 负载均衡
ZeroMQ综合指南
ZeroMQ综合指南
152 0
|
4月前
|
设计模式 Dart JavaScript
发布订阅模式原理及其应用(多种语言实现)
发布订阅模式原理及其应用(多种语言实现)
117 0
|
10月前
|
消息中间件 NoSQL 中间件
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建(上)
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建
171 0
|
10月前
|
消息中间件 存储 Kafka
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建(下)
Kafka 实战开篇-讲解架构模型、基础概念以及集群搭建(下)
151 0
|
12月前
|
消息中间件 存储 缓存
RabbitMQ:第一章:6 种工作模式以及消息确认机制(理论与代码相结合)
RabbitMQ:第一章:6 种工作模式以及消息确认机制(理论与代码相结合)
|
消息中间件 存储 Kafka
|
消息中间件 存储 大数据