1. 程式人生 > >jms 學習筆記

jms 學習筆記

今天上班一個下午就看了一個jms訊息機制,沒事總結一下今天看的東西吧 !!把我記得的或者自己感覺重要的東西記錄一下把,如果有誰感覺有錯了請給我提下哈!!大家一起學習哈哈!!!準備做一個訊息的demo出來。。。 1:ptp(也就p2p呵呵讓我想到了b2b)給我的感覺就是 一個生產訊息發給另一個人消費,,也就是point to point ,一個生產者生成的訊息先是放在queue中,讓另一個消費者去拿,拿完以後queue訊息佇列裡面就沒有這個訊息了。-------一對一(基於佇列) 2:pub/sub就是一個生產者生產出來資訊後給多給消費者用,用書上的話就是把一個訊息發給Topic,這個主題可以有多個接收者監聽,當一個訊息到達這個主題後所有接收者就可以拿到這個資訊了。-------------------------------------------一對多(基於主題)

感覺第二種方式就是那些網上的蘋果訂閱一樣的呢,說不定他們兩者還真有共同之處呢。一句廢話 我從網上找了幾張圖片可以方便大家理解哈!!!
圖一  訊息傳播模式
圖二  jms中公用,點對點,pub/sub的介面對比 前面我們講了訊息傳遞的模式,後面我們再來看看到底什麼是訊息吧! message:TextMessage(普通文字)
MapMessage(map型別)BytesMessage(二進位制資訊)、 StreamMessage(資料流資訊)ObjectMessage(物件資訊),XMLMessage(xml型別資訊) 上面簡單說明了資訊,下面我將對資訊的產生傳遞過程需要的元件進行說明,同時希望大家對著圖看的話瞭解的更深入:
圖三   jms整個過程的時序圖
  • connectionFactory 一個工廠 生成connection的工廠類,
  • connection 建立一個連線生成Session,
  • session 由connection建立一個session ,他又可以川籍訊息生產者,消費者,訊息
  • 生產者MessageProducer 
    Session物件建立的用來發送訊息的物件
  • Destination訊息的目的地
  • 訊息佇列:Queue點對點的訊息佇列 訊息主題Tipic 釋出訂閱的訊息佇列 
  • 消費者MessageConsumer Session 物件建立的用來發送訊息的物件 用文字描述上幅圖 1、生產者(producer)開發流程(ProducerTool.java): 1.1建立Connection 根據urluserpassword建立一個jms Connection 1.2建立Session connection的基礎上建立一個session,同時設定是否支援事務和ACKNOWLEDGE
    標識。 1.3建立Destination物件: 需指定其對應的主題(subject)名稱,producerconsumer將根據subject來發送/接收對應的訊息。 1.4建立MessageProducer 根據Destination建立MessageProducer物件,同時設定其持久模式。 1.5傳送訊息到佇列(Queue): 封裝TextMessage訊息,使用MessageProducersend方法將訊息傳送出去。 2、消費者(consumer)開發流程(ConsumerTool.java): 2.1實現MessageListener介面: 消費者類必須實現MessageListener介面,然後在onMessage()方法中監聽訊息的到達並處理。 2.2建立Connection 根據urluserpassword建立一個jms Connection,如果是durable模式,還需要給connection設定一個clientId 2.3建立SessionDestination 2.4建立replyProducer【可選】: 可以用來將訊息處理結果傳送給producer 2.5建立MessageConsumer 根據Destination建立MessageConsumer物件。 2.6消費message onMessage()方法中接收producer傳送過來的訊息進行處理,並可以通過replyProducer反饋資訊給producer
看了給我點反應哈!!!讓我能有基情繼續寫哈!!!