訊息中介軟體MQ
訊息佇列(Message Queue,簡稱 MQ)是阿里巴巴集團中介軟體技術部自主研發的專業訊息中介軟體。用於保證異構應用之間的訊息傳遞。應用程式通過MQ介面進行互連通訊,可以不必關心網路上的通訊細節,從而將更多的注意力集中於應用本身。
分散式訊息系統作為實現分散式系統可擴充套件、可伸縮性的關鍵元件,需要具有高吞吐量、高可用等特點。物件
•訊息 (Message)•佇列 (Queue)•佇列管理器(QueueManager)•通道 (Channel)•監聽器(Listener)關係:佇列管理器是負責嚮應用程式提供訊息服務的機構,我們可以把佇列管理器比作是資料庫,佇列是其中的一張表,訊息表中的一條記錄。1、訊息(Message)
訊息是 WebSphereMQ中最小的概念,本質上就是一條資料,它能被一個或多個應用程式所理解,是應用程式之間傳遞的資訊載體。
訊息可以大致分成兩部分:應用資料體和訊息資料頭。訊息資料頭是對訊息屬性的描述,這段資訊往往被佇列管理器用來確定對訊息的處理。訊息資料頭可以由應用程式或系統的訊息服務程式共同產生,它包含了訊息在傳送中的必要資訊,如目標佇列管理器的名字,目標佇列的名字,以及訊息的其它一些屬性。
訊息可以分成持久(Persistent)訊息和非持久 (Non-Persistent)訊息。所謂“持久”的意思,就是在 WebSphere MQ 佇列管理器重啟動後,訊息是否仍然能保持。
2、佇列 (Queue):分本地佇列、遠端佇列、模型佇列
3、佇列管理器(QueueManager)
WebSphere
4、通道 (Channel)
5、監聽器(Listener)
同步接收訊息:同步讀取即主動讀取方式
非同步接收訊息非同步讀取則需要設定Listener,在訊息到達後,自動呼叫Listener的onMessage()方法。
JMS開發
jms即Java訊息服務(JavaMessage Service)應用程式接口,是一個Java平臺中關於面向訊息中介軟體(MOM)的API,用於在兩個應用程式之間,或分散式系統中傳送訊息,進行非同步通訊。
•JMS 中有一系列的類:ConnectionFactory,Connection,Session,MessageProducer,MessageConsumer,Message••在 JMS 程式設計時,程式首先要找出ConnectionFactory,以此建立Connection,再建立Session,以後所有的操作都以Session 為基礎。找出Queue 或Queue (統稱Destination),以此建立QueueSender或QueuePublisher (統稱MessageProducer),在該物件上傳送或釋出訊息。也可以在Destination 基礎上建立QueueReceiver或 QueueSubscriber (統稱MessageConsumer),在該物件上接收或訂閱訊息。