初探ZeroMQ(四) 管道模式中套結字總結

參考資料:ØMQ - The Guide(英文)
參考資料:ØMQ - The Guide(中文)
本文主要介紹和總結在管道模式中各種套結字的行爲.


套結字簡介

PUSH: 套結字將採用輪詢算法發送消息給一組匿名的PULL遠端連接.
PULL: 套結字將採用公平隊列算法接收來自一組PUSH連接的消息.


以下是譯文,原文地址:http://rfc.zeromq.org/spec:30

管道模式

該模式是通常用於在一個多級流水線中進行任務分配,在流水線中其中一個或幾個節點推送工作給工人,然後工人輪流推送結果到收集器。模式是可靠的,因爲它不會丟棄消息,除非一個節點意外斷開。該模式是可擴展,節點可以隨時加入。

PUSH 套結字類型

PUSH套結字將採用輪詢算法發送消息給一組匿名的PULL遠端連接.

常規行爲:

-可以被任意數量的PULL遠端連接,PUSH只發送消息
-不會以任何方式過濾和修改傳出的消息
-將會爲每個遠端連接維持一個傳出消息隊列
--將在啓動一個到訂閱者的連接的時候創建一個傳出隊列,不管連接是否建立,它都包含則這個隊列
-當PULL連接到PUSH的時候,PUSH套結字將創建一個傳出隊列,如果斷開連接,PUSH套結字將會摧毀該傳出隊列,並且丟棄掉隊列中的消息
-應該限制運行時傳出隊列的大小

處理傳出的消息:

-僅當連接的傳出隊列未滿時,才認爲該連接可用.
-將採用輪詢的策略去路由傳出的消息給可用的連接
-當它沒有可用的連接時,將阻塞在發送上,或者返回一個合適的error.
-當它沒有可用的連接時,進不會接收進一步的消息.
-將不會丟棄它不能排隊的消息.

PULL 套結字類型

PULL套結字將採用公平隊列算法接收來自一組PUSH連接的消息.

常規行爲:

-可以連接到任意數量的PUSH遠端,PULL只接收消息
-不會以任何方式過濾和修改傳出的消息
-將會爲每個遠端連接維持一個傳入消息隊列
-將在啓動一個到發佈者的連接的時候創建一個傳入隊列,不管連接是否建立,它都包含則這個隊列
-當PUSH連接到PULL的時候,PULL套結字將創建一個傳入隊列,如果斷開連接,PULL套結字將會摧毀該傳入隊列,並且丟棄掉隊列中的消息
-應該限制運行時傳出隊列的大小

處理傳入的消息:

-將採用公平隊列策略接收來自一組PUSH遠端發送來的消息
-將傳遞這些消息給應用程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章