辛星淺析Redis中的pub/sub功能,辛星redis

來源:互聯網
上載者:User

辛星淺析Redis中的pub/sub功能,辛星redis

      pub/sub功能也就是publish/subscribe功能,也就是發布訂閱功能。基於事件的系統中,pub/sub是目前廣泛使用的通訊模型,它採用事件作為基本的通訊機制,提供大規模系統所要求的鬆散耦合的互動模式:訂閱者比如用戶端以事件訂閱的方式表達出它有興趣接收的一個事件或一類事件,發行者比如伺服器可以將訂閱者興趣的事件隨時通知相關訂閱者。



    pub/sub功能可以有三個非耦合:

    (1)時間非耦合,也就是發行者和訂閱者不必同時線上,它們不必同時參與互動。

    (2)空間非耦合,也就是發行者和訂閱者不必相互知道對方所在的位置。發行者通過事件服務發布時間,訂閱者通過事件服務間接獲得事件。發行者和訂閱者不需要擁有直接到對方的引用,也不必知道有多少個訂閱者或者是發行者參與互動。

    (3)同步非耦合,發布/訂閱是非同步模式。發行者可以不斷的產生事件,而訂閱者(通過一個回調)則可以非同步地得到產生事件的通知。

   

    pub/sub功能按照訂閱者式分為基於主題(topic-based)、基於內容(content-based)、基於類型(type-based)的方式。它是可適用於可擴充性高、鬆散耦合系統的分布式互動模型。在抽象層中,它的時間非耦合、空間非耦合和空間非耦合性可允許參與者不依賴於另一個而獨立操作,具有一定的可擴充性。但是在實現的時候,可擴充性依然受到其他原因的牽制。

    pub/sub通常適用的範圍:

    (1)靈活的訂閱要求複雜的過濾和路由演算法

    (2)高可用性開銷(事件偵聽、日誌重傳)

    (3)訊息認可帶來的網路流量消耗

    (4)龐大的訂閱者資料帶來的系統開銷

    基於事件的pub/sub中介軟體的開發與利用在一定程度上可以提高系統的效率。


     Redis中的實現流程:

    (1)訂閱者訂閱兩個topic,範例:

              subscribe   first    second

    (2)發行者發布資訊,範例:  

              publish   first   hello      

              publish  second    world

    (3)訂閱者取消一個topic,返利:

             unsubscribe   first












聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.