java消息中間件的使用與簡介


一、為什么要使用消息中間件

       消息中間件就是可以省去繁瑣的步驟,直達目的,怎么講呢,就是比如你想很多人,知道你的動態,而知道的人可能手機沒電,可能手機信號不好,可能手機不在服務區,或者看的人比較忙,看的時間不固定,這樣的時候,你發送的消息怎么會讓其看到呢,就是建立一個微信公眾號,可以滿足用戶隨時看到你想讓其看到的消息,這就是中間件的一種應用方式,生活中老師講課的黑板,家中的電視機都是中間件的一種體現方式。

消息中間件的好處

1、解耦

2、異步

3、橫向擴展 :就是可以通過一個中間件進行一個功能多次的操作

4、安全可靠   消息中間件可以把消息保存

5、順序保存,比如kafka

二、什么是中間件

      非底層操作系統軟件,非業務應用軟件,不是給最終用戶使用,不能直接給用戶帶來價值的軟件統稱為中間件。

三、什么是消息中間件

      關注於數據的發送和接受,利用高效可靠的異步消息傳遞機制集成分布式系統。

四、什么是JMS

       Java消息服務(Java Message Service)即JMS,是一個Java平台中關於面向消息中間件的API,用於在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。

五、什么是AMQP

        AMQP(advanced message queuing protocol)是一個提供統一消息服務的應用層標准協議,基於此協議的客戶端與消息中間件可傳遞消息,並不受客戶端/中間件不同產品,不同開發語言等條件的限制.

常見消息中間件對比

1、ActiveMQ

        ActiveMQ是Apache出品,最流行的,能力強勁的開源消息總線. ActiveMQ是一個完全支持JMS1.1和J2EE1.4規范的JMS Provider實現,盡管JMS規范出台已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演着特殊的地位.

ActiveMQ特性

        (1)多種語言和協議編寫客戶端.語言:

                Java,C,C++,C#,Ruby,Perl,Python,PHP.

        (2)應用協議:

                 OpenWire、Stomp REST,WS Notification,XMPP,AMQP

         (3)完全支持JMS1.1和J2EE1.4規范(持久化,XA消息,事務)

          (4)虛擬主題、組合目的、鏡像隊列

2、RabbitMQ

          RabbitMQ是一個開源的AMQP實現,服務器端用Erlang語言編寫。用於在分布式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。

 RabbitMQ特性    

         (1)支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript等

         (2)AMQP的完整實現(vhost、Exchange、Binding、Routing Key 等)

         (3)事務支持/發布確認

         (4)消息持久化

3、Kafka

        Kafka是一種高吞吐量的分布式發布訂閱消息系統,是一個分布式的、分區的、可靠的分布式日志存儲服務。它通過一種獨一無二的設計提供了一個消息系統的功能。(不是個嚴格的中間件,主要是用於日志轉存的)

 Kafka特性:

    (1)通過O(1)  的磁盤數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。

    (2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒數百萬的消息。

    (3)Partition、Consumer Group

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM