消息中間件概述

一.JMS

  • JMS規(guī)范,Java api,不跨語言
  • 提供兩種消息模型:p2p,pub/sub
  • 消息類型:
    TextMessage,MapMessage,BytesMessage,StreamMessage,ObjectMessage,Message
  • Java消息服務(wù)(Java Message Service)即JMS,是一個java平臺中關(guān)于面向消息中間件的API,用于在兩個應(yīng)用程序之間,或分布式系統(tǒng)中發(fā)送消息,進行異步通信.
  • JMS定義了JAVAAPI層面標(biāo)準(zhǔn);在java體系中,多個client均可以通過JMS進行交互,不需要應(yīng)用修改代碼,但是其對跨平臺支持較差.

二.AMQP

  • AMQP協(xié)議,Wire-protocol,跨語言
  • 提供了五種消息模型:direct,fanout,topic,headers,system
  • 消息類型:byte[]
  • AMQP(advanced message queuing protocol)是一個提供統(tǒng)一消息服務(wù)的應(yīng)用層標(biāo)準(zhǔn)協(xié)議,基于此協(xié)議的客戶端與消息中間件可傳遞消息,并不受客戶端/中間件不同產(chǎn)品,不同開發(fā)語言等條件的限制.
  • AMQP的主要特征是面向消息,隊列,路由(包括點對點和發(fā)布/訂閱),可靠性,安全.

三.常見消息中間件對比

    1. ActiveMQ

ActiveMQ是Apache出品,最流行的,能力強勁的開源消息總線.ActiveMQ是一個> 完全支持JMS1.1和J2EE1.4規(guī)范的JMS Provider實現(xiàn),盡管JMS規(guī)范出臺已經(jīng)>
是很久的事情了,但是JMS在當(dāng)今的J2EE應(yīng)用中間仍然扮演著特殊的地位.

  • 多種語言和協(xié)議編寫客戶端.語言:
    Java,C,C++,C#,Ruby,Perl,Python,PHP.應(yīng)用協(xié)議:OpenWire,Stomp REST,WS Notification,XMPP,AMQP
  • 完全支持JMS1.1和J2EE 1.4規(guī)范(持久化,XA消息,事務(wù))
  • 虛擬主題,組合目的,鏡像隊列
  • 支持持久化
  • 2.RabbitMQ

RabbitMQ是一個開源的AMQP實現(xiàn),服務(wù)器端用Erlang語言編寫.用于在分布式
系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性,拓展性,高可用性等方面表現(xiàn)不俗.

  • 特性:支持多種客戶端,如:Python,Ruby,.NET,Java,JMS,C,PHP,ActionScript等
  • AMQP的完整實現(xiàn)(vhst,Exchange,Binding,Routing Key等)
  • 事務(wù)支持/發(fā)布確認(rèn)
  • 消息持久化
  • Kafka

Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),是一個分布式的,分區(qū)的,可靠>的分布式日志存儲服務(wù).它通過一種獨一無二的設(shè)計提供了一個消息系統(tǒng)的功能.

  • 通過O(1)的磁盤數(shù)據(jù)結(jié)構(gòu)提供消息持久化,這種結(jié)構(gòu)對于即使數(shù)以TB的消息存儲也能夠保持長時間的穩(wěn)定性能
  • 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒數(shù)百萬的消息.
  • Partition,Consumer Group
  • 以Java平臺為主
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • 一、 消息隊列概述 消息隊列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合、異步消息、流量削鋒等問題。實現(xiàn)高性能...
    步積閱讀 57,443評論 10 138
  • kafka的定義:是一個分布式消息系統(tǒng),由LinkedIn使用Scala編寫,用作LinkedIn的活動流(Act...
    時待吾閱讀 5,539評論 1 15
  • 1 消息隊列概述 消息隊列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合,異步消息,流量削鋒等問題。實現(xiàn)高性能,...
    Bobby0322閱讀 11,057評論 0 24
  • 對蘇州產(chǎn)生初印象就是源于“上有天堂,下有蘇杭”這句話,但是從來沒有產(chǎn)生過要去蘇州的念頭,理由很簡單,我是老海,老海...
    海貍先生Helen閱讀 279評論 0 0

友情鏈接更多精彩內(nèi)容