2019-08-13

MemcacheQ

持久化消息隊列(簡稱mcq)是一個輕量級的消息隊列,特性如下:

簡單易用

處理速度快

多條隊列

并發(fā)性能好

與memcache的協(xié)議兼容。意味著只要裝了前者的extension即可,不需要額外的插件

在zend framework中使用很方便

MSMQ

這是微軟的產品力唯一被認為有價值的東西。如果MSMQ能證明可以應對這種任務,他們將選擇使用它。

關鍵是它并不復雜,除了接收和發(fā)送,沒有別的;它有一些硬性限制,比如最大消息體積是4MB。

然而,通過和一些想MassTransit或NServiceBus這樣的軟件的連接,它完全可以解決這些問題。

ZeroMQ

ZeroMQ是一個非常輕量級的消息系統(tǒng),號稱最快的消息隊列系統(tǒng),專門為高吞吐量/低延遲的場景開發(fā),在金融界的應用中經(jīng)??梢园l(fā)現(xiàn)它。

與RabbitMQ相比,ZeroMQ支持許多高級消息場景,能夠實現(xiàn)RabbitMQ不擅長的高級/復雜的隊列,但是你必須實現(xiàn)ZeroMQ框架中的各個塊(比如Socket或Device等)。

ZeroMQ具有一個獨特的非中間件的模式,你不需要安裝和運行一個消息服務器或中間件,因為你的應用程序將扮演這個服務角色。你只需要簡單地引用ZeroMQ程序庫,可以使用NuGet安裝,然后你就可以愉快地在應用程序之間發(fā)送消息了。

但是ZeroMQ僅提供非持久性的隊列,即沒有地方可以觀察它是否有問題出現(xiàn),也就是說如果down機,數(shù)據(jù)將會丟失。

ZeroMQ非常靈活,但是你必須學習它的80頁的手冊(如果你要寫一個分布式系統(tǒng),一定要閱讀它)。

Jafka/Kafka

Kafka(能將消息分散到不同的節(jié)點上)是LinkedIn于2010年12月開發(fā)并開源的一個分布式MQ系統(tǒng),現(xiàn)在是Apache的一個孵化項目,是一個高性能跨語言分布式Publish/Subscribe消息隊列系統(tǒng),而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具有以下特性:

快速持久化,可以在O(1)的系統(tǒng)開銷下進行消息持久化;

高吞吐,在一臺普通的服務器上既可以打到10W/s的吞吐速率;

完全的分布式系統(tǒng),Broker、Producer、Consumer都原生自動支持分布式,自動實現(xiàn)復雜均衡;

支持Hadoop數(shù)據(jù)并行加載,統(tǒng)一了在線和離線的消息處理,對于像Hadoop一樣的日志數(shù)據(jù)和離線分析系統(tǒng),但又要求實時處理的限制,這是一個可行的解決方案。

相對于ActiveMQ是一個非常輕量級的消息系統(tǒng),除了性能非常好之外,還是一個工作良好的分布式系統(tǒng)。

Apache ActiveMQ

ActiveMQ居于(RabbitMQ&ZeroMQ)之間,類似于ZemoMQ,它可以部署于代理模式和P2P模式。

ActiveMQ被譽為Java世界的中堅力量。它有很長的歷史,且被廣泛使用。它還是跨平臺的,給那些非微軟平臺的產品提供了一個天然的集成接入點。

然而它只有跑過了MSMQ才有可能被考慮。如需配置ActiveMQ則需要在目標機器上安裝Java環(huán)境。

類似于RabbitMQ,它易于實現(xiàn)高級場景,而且只需付出低消耗。它被譽為消息中間件的“瑞士軍刀”。

RabbitMQ

RabbitMQ是使用Erlang編寫的一個開源消息隊列,本身支持很多的協(xié)議:AMQP, XMPP, SMTP, STONP,也正是如此,使的它變的非常重量級,更適合于企業(yè)級的開發(fā)。

它實現(xiàn)了代理(Broker)架構,意味著消息在發(fā)送到客戶端之前可以在中央節(jié)點上排隊。此特性使得RabbitMQ易于使用和部署,適宜于很多場景如路由、負載均衡或消息持久化等,用消息隊列只需幾行代碼即可搞定。

但是,這使得它的可擴展性差,速度較慢,因為中央節(jié)點增加了延遲,消息封裝后也比較大。

如需配置RabbitMQ則需要在目標機器上安裝Erlang環(huán)境。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1 消息隊列中間件簡介 消息隊列中間件是分布式系統(tǒng)中重要的組件,主要解決應用耦合,異步消息,流量削鋒等問題實現(xiàn)高性...
    艾綸_6460閱讀 272評論 0 0
  • 前言 在分布式系統(tǒng)中,我們廣泛運用消息中間件進行系統(tǒng)間的數(shù)據(jù)交換,便于異步解耦?,F(xiàn)在開源的消息中間件有很多,前段時...
    zwb_jianshu閱讀 2,719評論 0 0
  • 前言 在分布式系統(tǒng)中,我們廣泛運用消息中間件進行系統(tǒng)間的數(shù)據(jù)交換,便于異步解耦?,F(xiàn)在開源的消息中間件有很多,前段時...
    中v中閱讀 3,185評論 1 29
  • 1 消息隊列概述 消息隊列中間件是分布式系統(tǒng)中重要的組件,主要解決應用耦合,異步消息,流量削鋒等問題。實現(xiàn)高性能,...
    Bobby0322閱讀 11,055評論 0 24
  • 正如我之前的那篇關于Promise的介紹, async可以讓你的異步操作變得更加簡單。 異步操作 async函數(shù)返...
    龔達耶閱讀 10,354評論 0 5

友情鏈接更多精彩內容