ActiveMQ簡(jiǎn)介
ActiveMQ是完全基于JMS規(guī)范實(shí)現(xiàn)的一個(gè)消息中間件產(chǎn)品载弄。是Apache開(kāi)源基金會(huì)研發(fā)的消息中間件耘拇。ActiveMQ主要應(yīng)用在分布式系統(tǒng)架構(gòu)中,幫助構(gòu)建高可用宇攻、高性能惫叛、可伸縮的企業(yè)級(jí)面向消息服務(wù)的系統(tǒng) 。
ActiveMQ安裝
1. 下載?Apache ActiveMQ ? -- ActiveMQ 5.15.0 Release ?
2. 復(fù)制到服務(wù)器上逞刷,通過(guò) tar -zxvf apacheactiveMQ.tar.gz 解壓
3. 啟動(dòng)運(yùn)行?
a) 普通啟動(dòng):到bin目錄下嘉涌, sh activemq start?
b) 啟動(dòng)并指定日志文件 sh activemq start > /tmp/activemqlog?
4. 檢查是否已啟動(dòng)
ActiveMQ默認(rèn)采用61616端口提供JMS服務(wù),使用8161端口提供管理控制臺(tái)服務(wù)亲桥,執(zhí)行以下命令可以檢查是否成功啟動(dòng)ActiveMQ服務(wù):netstat -an|grep 61616?
5. 通過(guò) http://192.168.11.156:8161 訪問(wèn) activeMQ 管理頁(yè) 面 洛心,默認(rèn)帳號(hào)密碼 admin/admin?
6. 關(guān)閉ActiveMQ:sh activemq stop
從 JMS 規(guī)范來(lái)了解 ActiveMQ?
JMS 定義
Java消息服務(wù)(Java Message Service)是java平臺(tái)中關(guān) 于面向消息中間件的API,用于在兩個(gè)應(yīng)用程序之間题篷,或者分布式系統(tǒng)中發(fā)送消息词身,進(jìn)行異步通信。
JMS 是一個(gè)與具體平臺(tái)無(wú)關(guān)的 API番枚,絕大多數(shù) MOM(Message Oriented Middleware)(面向消息中間件)提供商都對(duì)JMS提供了支持法严。
MOM 定義
MOM 是面向消息的中間件损敷,使用消息傳送提供者來(lái)協(xié)調(diào)消息傳送操作。MOM 需要提供API和管理工具深啤∞致客戶端使用api調(diào)用,把消息發(fā)送到由提供者管理的目的地溯街。在發(fā)送消息之后诱桂,客戶端會(huì)繼續(xù)執(zhí)行其他工作,并且在接收方收到這個(gè)消息確認(rèn)之前呈昔,提供者一直保留該消息挥等。
MOM的特點(diǎn)?
1. 消息異步接收,發(fā)送者不需要等待消息接受者響應(yīng)?
2. 消息可靠接收堤尾,確保消息在中間件可靠保存肝劲。只有接收方收到后才刪除消息
JMS 規(guī)范
1. 不同的消息傳送模式或域,例如點(diǎn)對(duì)點(diǎn)消息傳送和發(fā)布/訂閱消息傳送?
2. 提供于接收同步和異步消息的工具?
3. 對(duì)可靠消息傳送的支持?
4. 常見(jiàn)消息格式郭宝,例如流辞槐、文本和字節(jié)
JMS 的基本功能? ?
點(diǎn)對(duì)點(diǎn)消息傳遞域
1. 每個(gè)消息只能有一個(gè)消費(fèi)者?
2. 消息的生產(chǎn)者和消費(fèi)者之間沒(méi)有時(shí)間上的相關(guān)性。無(wú)論消費(fèi)者在生產(chǎn)者發(fā)送消息的時(shí)候是否處于運(yùn)行狀態(tài)粘室,都可以提取消息
發(fā)布訂閱消息傳遞域
1. 每個(gè)消息可以有多個(gè)消費(fèi)者?
2. 生產(chǎn)者和消費(fèi)者之間有時(shí)間上的相關(guān)性榄檬。訂閱一個(gè)主題的消費(fèi)者只能消費(fèi)自它訂閱之后發(fā)布的消息。JMS規(guī)范允許客戶創(chuàng)建持久訂閱育特,這在一定程度上降低了時(shí)間上的相關(guān)性要求丙号。持久訂閱允許消費(fèi)者消費(fèi)它在未處于激活狀態(tài)時(shí)發(fā)送的消息
消息結(jié)構(gòu)組成
消息頭
JMSDestination 消息發(fā)送的目的地先朦,queue或者topic
JMSDeliveryMode 傳送模式缰冤,持久模式和非持久模式?
JMSPriority 消息優(yōu)先級(jí)(優(yōu)先級(jí)分為10個(gè)級(jí)別,從0(最低)到9(最高)喳魏。如果不設(shè)定優(yōu)先級(jí)棉浸,默認(rèn)級(jí)別是4。 需要注意的是刺彩,JMS provider并不一定保證按照優(yōu)先級(jí)的順序提交消息)?
JMSMessageID 唯一識(shí)別每個(gè)消息的標(biāo)識(shí)
屬性