读书人

传输层的各种形式ZeroMQ 库的使用

发布时间: 2013-03-25 15:43:04 作者: rapoo

传输层的各种模式——ZeroMQ 库的使用

最近在研究 ZeroMQ 库的使用,所以在这里总结一下各种模式,以便日后拿来使用。

关于 ZeroMQ 库,我就不多介绍了,大家可以参考下面一些文章,以及他的官网、使用指南、API 参考、项目仓库等内容。

开源点评:ZeroMQ简介

ZeroMQ的学习和研究

ZeroMQ 的模式

ZeroMQ 的目标是成为 OSI 模型的传输层(Transport Layer)的标准协议,所以他支持各种操作系统,支持多达30种以上的语言,是跨平台、跨语言的传输层库,而且性能是其绝对优势。所以对于进程间通信、节点间通信均可以使用他,可以用他直接替代 socket 的操作。而且用过之后就知道,他用起来非常的简单,学习成本很低,我只用了 1 天时间就把他的 3 种常用模式用 Python 实现了,代码在这里,大家可以参考一下,接下来准备用 C++ 再实现一遍。

ZeroMQ 总结的通信模式如下:

PUB and SUBREQ and REPREQ and ROUTERDEALER and REPDEALER and ROUTERDEALER and DEALERROUTER and ROUTERPUSH and PULLPAIR and PAIR

ZeroMQ 总结的应用模式如下:

Request-reply, which connects a set of clients to a set of services. This is a remote procedure call and task distribution pattern.Publish-subscribe, which connects a set of publishers to a set of subscribers. This is a data distribution pattern.Pipeline, which connects nodes in a fan-out / fan-in pattern that can have multiple steps, and loops. This is a parallel task distribution and collection pattern.

当然,实际使用中还得了解一些解决具体问题的模式,所以下面把使用指南中的一些模式整理如下,方便自己日后拿来使用。

最常用的三种模式:

1. Request-Reply

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用


2. Publish-Subscribe

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用


3. Parallel Pipeline

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用


其他模式:其他模式只是上面三种模式的加强而已,所以也是分为三大类。A. Request-Reply Patterns

1. The Load-balancing Pattern

传输层的各种形式——ZeroMQ 库的使用


2. The Asynchronous Client-Server Pattern

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用


3. Client-side Reliability (Lazy Pirate Pattern)

传输层的各种形式——ZeroMQ 库的使用


4. Basic Reliable Queuing (Simple Pirate Pattern)

传输层的各种形式——ZeroMQ 库的使用


5. Robust Reliable Queuing (Paranoid Pirate Pattern)

传输层的各种形式——ZeroMQ 库的使用


6. Service-Oriented Reliable Queuing (Majordomo Pattern)

传输层的各种形式——ZeroMQ 库的使用


7. Disconnected Reliability (Titanic Pattern)

传输层的各种形式——ZeroMQ 库的使用


8. High-availability Pair (Binary Star Pattern)

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用


9. Brokerless Reliability (Freelance Pattern)

传输层的各种形式——ZeroMQ 库的使用


B. Publish-Subscribe Patterns

1. Pub-sub Tracing (Espresso Pattern)

2. Slow Subscriber Detection (Suicidal Snail Pattern)

3. High-speed Subscribers (Black Box Pattern)

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用


4. Reliable Publish-Subscribe (Clone Pattern)

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用

传输层的各种形式——ZeroMQ 库的使用


C. Parallel Pipeline Patterns

暂无

读书人网 >软件架构设计

热点推荐