過了個(gè)春節(jié),回到公司的成小胖變成了成大胖。但是你們千萬別以為他那個(gè)大肚子里面裝的都是肥肉,里面的墨水也多了不少嘞,畢竟成小胖利用春節(jié)的半個(gè)月時(shí)間專心學(xué)習(xí)并研究了 ActiveMQ,嘿嘿……
這不,為了檢驗(yàn)下自己的學(xué)習(xí)成果,上班的第一天成小胖就去找架構(gòu)師老王交流 ActiveMQ 相關(guān)的知識(shí),還順便向老王討了個(gè)紅包,可把成小胖給高興壞了。
來,根據(jù)你的了解說下 ActiveMQ 是什么?!?/p>

“這個(gè)簡(jiǎn)單,ActiveMQ 是一個(gè) MOM,具體來說是一個(gè)實(shí)現(xiàn)了 JMS 規(guī)范的系統(tǒng)間遠(yuǎn)程通信的消息代理。它……”

等等,先解釋下什么是 MOM?!?/p>

“好。MOM 就是面向消息中間件(Message-oriented middleware),是用于以分布式應(yīng)用或系統(tǒng)中的異步、松耦合、可靠、可擴(kuò)展和安全通信的一類軟件。MOM 的總體思想是它作為消息發(fā)送器和消息接收器之間的消息中介,這種中介提供了一個(gè)全新水平的松耦合?!?/span>

JMS呢?

成小胖是個(gè)追求極致的人,為了解釋得更通俗易懂,索性搬來一塊白板邊畫邊說。

“JMS 叫做 Java 消息服務(wù)(Java Message Service),是 Java 平臺(tái)上有關(guān)面向 MOM 的技術(shù)規(guī)范,旨在通過提供標(biāo)準(zhǔn)的產(chǎn)生、發(fā)送、接收和處理消息的 API 簡(jiǎn)化企業(yè)應(yīng)用的開發(fā),類似于 JDBC 和關(guān)系型數(shù)據(jù)庫(kù)通信方式的抽象?!?/span>

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)
嗯,很好。下面的這些概念你也需要特別理解下

  • Provider:純 Java 語言編寫的 JMS 接口實(shí)現(xiàn)(比如 ActiveMQ 就是)

  • Domains:消息傳遞方式,包括點(diǎn)對(duì)點(diǎn)(P2P)、發(fā)布/訂閱(Pub/Sub)兩種

  • Connection factory:客戶端使用連接工廠來創(chuàng)建與 JMS provider 的連接

  • Destination:消息被尋址、發(fā)送以及接收的對(duì)象

你來說說這其中 P2P 和 Pub/Sub 的區(qū)別吧”,老王給成小胖拋出了一個(gè)問題。

成小胖可不是吃素的,畢竟要是吃素的話他也吃不到這么胖……這些基本概念對(duì)他來說都是小事一樁:

P2P (點(diǎn)對(duì)點(diǎn))消息域使用 queue 作