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快速搭建网络拓扑。
目录
相关文章
|
1天前
|
存储 负载均衡 网络协议
ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
【4月更文挑战第9天】ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
5 0
|
24天前
|
消息中间件 存储 监控
【ZeroMQ的SUB视角】深入探讨订阅者模式、C++编程实践与底层机制
【ZeroMQ的SUB视角】深入探讨订阅者模式、C++编程实践与底层机制
103 1
|
30天前
|
消息中间件 监控 负载均衡
ZeroMQ综合指南
ZeroMQ综合指南
78 0
|
3月前
|
设计模式 Dart JavaScript
发布订阅模式原理及其应用(多种语言实现)
发布订阅模式原理及其应用(多种语言实现)
106 0
|
11月前
|
消息中间件 存储 缓存
RabbitMQ:第一章:6 种工作模式以及消息确认机制(理论与代码相结合)
RabbitMQ:第一章:6 种工作模式以及消息确认机制(理论与代码相结合)
|
消息中间件 RocketMQ
RocketMQ高性能通信实现机制源码精读
RocketMQ高性能通信实现机制源码精读
134 0
RocketMQ高性能通信实现机制源码精读
|
Java 数据库 算法
《Akka应用模式:分布式应用程序设计实践指南》读书笔记9
性能   这也是一个比较大的问题,因为性能不一定是Akka本身的问题,还可能是你代码写的有问题。   优化的第一步就是找出性能的瓶颈,隔离出应用程序里面比较耗时的部分,然后尝试对其优化,减少需要耗费的时间成本。
1635 0
|
缓存 运维 数据库
《Akka应用模式:分布式应用程序设计实践指南》读书笔记8
可用性   简单点来说就是系统能否正常使用。如果系统能够及时响应一个请求,则认为是可用的;如果响应时间过长或者根本不响应,则是不可用的。系统在停机或超载时是不可用的。一般用系统正常运行时长的百分比来计量系统的可用性,例如常常用N个9表示系统的可用性。
1883 0
|
运维 Java
《Akka应用模式:分布式应用程序设计实践指南》读书笔记7
容错   容错绝对是分布式系统最难搞定的事儿,至少我这样认为,因为意外总是会发生。   处理故障在许多方面意味着要放弃全局一致性。Akka是基于不粗要调用方负责处理故障的想法而建立的。它主张由发生故障的actor负责处理问题,在actor不能处理的情况下,会向其“监督者”寻求帮助。
1706 0
|
存储 缓存 NoSQL
《Akka应用模式:分布式应用程序设计实践指南》读书笔记6
一致性和可扩展性   一致性是系统内比较复杂的属性,它会随着系统的变化而变化。简单来说,一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。一旦系统具有并行性(分布式只是并行的一种表现),保持一致性就变得困难了,毕竟需要协调全局状态。
1363 0