ActiveMQ介紹及安裝
一、JMS簡介
全稱:Java Message Service 中文:Java消息服務。
JMS是Java的一套API標準,最初的目的是為了使應用程序能夠訪問現有的MOM系統(MOM是Message Oriented Middleware的英文縮寫,指的是利用高效可靠的消息傳遞機制進行平臺無關的數據交流,并基于數據通信來進行分布式系統的集成。);后來被許多現有的MOM供應商采用,并實現為MOM系統。
基于JMS實現的MOM,又被稱為JMS Provider。
1.什么是消息
“消息”是在兩臺計算機間傳送的數據單位。消息可以非常簡單,例如只包含文本字符串;也可以更復雜,可能包含嵌入對象。
消息被發送到隊列中。“消息隊列”是在消息的傳輸過程中保存消息的容器。消息隊列管理器在將消息從它的源中繼到它的目標時充當中間人。隊列的主要目的是提供路由并保證消息的傳遞;如果發送消息時接收者不可用,消息隊列會保留消息,直到可以成功地傳遞它。
2.什么是消息隊列
“消息隊列”是在消息的傳輸過程中保存消息的容器。
3.常用的消息中間件有哪些
3.1ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現。
3.2RabbitMQ
RabbitMQ是一個在AMQP基礎上完成的,可復用的企業消息系統。他遵循Mozilla Public License開源協議。開發語言為Erlang。
3.3RocketMQ
由阿里巴巴定義開發的一套消息隊列應用服務。
4.消息隊列的應用場景
消息隊列的主要特點是
異步處理
,主要目的是
減少請求響應時間和解耦
。所以主要的使用場景就是將比較耗時而且不需要即時(同步)返回結果的操作作為消息放入消息隊列。同時由于使用了消息隊列,只要保證消息格式不變,消息的發送方和接收方并不需要彼此聯系,也不需要受對方的影響,即解耦和。如:跨系統的異步通信,所有需要異步交互的地方都可以使用消息隊列。就像我們除了打電話(同步)以外,還需要發短信,發電子郵件(異步)的通訊方式。
多個應用之間的耦合,由于消息是平臺無關和語言無關的,而且語義上也不再是函數調用,因此更適合作為多個應用之間的松耦合的接口。基于消息隊列的耦合,不需要發送方和接收方同時在線。
在企業應用集成(EAI)中,文件傳輸,共享數據庫,消息隊列,遠程過程調用都可以作為集成的方法。
應用內的同步變異步,比如訂單處理,就可以由前端應用將訂單信息放到隊列,后端應用從隊列里依次獲得消息處理,高峰時的大量訂單可以積壓在隊列里慢慢處理掉。由于同步通常意味著阻塞,而大量線程的阻塞會降低計算機的性能。
消息驅動的架構(EDA),系統分解為消息隊列,和消息制造者和消息消費者,一個處理流程可以根據需要拆成多個階段(Stage),階段之間用隊列連接起來,前一個階段處理的結果放入隊列,后一個階段從隊列中獲取消息繼續處理。
應用需要更靈活的耦合方式,如發布訂閱,比如可以指定路由規則。
跨局域網,甚至跨城市的通訊,比如北京機房與廣州機房的應用程序的通信
二、ActiveMQ介紹
是Apache軟件基金會所研發的開放源代碼消息中間件;由于ActiveMQ是一個
純Java程序
,因此只需要操作系統支持Java虛擬機,ActiveMQ便可執行。
多種語言和協議編寫
客戶端
。語言: Java,C,C++,C#,Ruby,Perl,Python,PHP。應用協議: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
完全支持JMS1.1和J2EE 1.4規范 (持久化,XA消息,事務)
對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統里面去通過了常見J2EE服務器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業服務器上
支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
支持通過JDBC和journal提供高速的消息持久化
從設計上保證了高性能的集群,客戶端-服務器,點對點
支持Ajax
支持與Axis的整合
可以很容易的調用內嵌JMS provider,進行測試
三、ActiveMQ安裝
1.下載安裝文件
ActiveMQ官網: http://activemq.apache.org
或者直接通過如下命令在Linux中下載:
wget https://archive.apache.org/dist/activemq/5.12.0/apache-activemq-5.12.0-bin.tar.gz
1
版本說明
ActiveMQ5.10.x以上版本必須使用
JDK1.8
才能正常使用。
ActiveMQ5.9.x及以下版本使用
JDK1.7
即可正常使用。
下載速度比較慢的可以通過我提供的云盤地址下載:
鏈接:https://pan.baidu.com/s/1cKHNihVztzAbGttc18oVjw
提取碼:e431
2.解壓縮
tar -zxvf apache-activemq-5.11.1-bin.tar.gz
1
并對文件夾重命令
mv apache-activemq-5.11.1 activemq
1
3.檢查權限
ls -al activemq/bin
如果權限不足,則無法執行,需要修改文件權限:
chmod 755 activemq
4.啟動ActiveMQ服務
./activemq/bin/activemq start
1
5.測試ActiveMQ
5.1檢查進程
ps aux | grep activemq
見到下述內容即代表啟動成功
5.2登錄管理界面
http://ip:8161/admin/
用戶名: admin
密碼: admin
ActiveMQ使用的是jetty提供HTTP服務.啟動稍慢,建議短暫等待再訪問測試.
見到如下界面代表服務啟動成功
5.3修改端口號
修改conf下的jetty.xml文件中的port參數既可,如下:
6.重啟ActiveMQ
/opt/activemq/bin/activemq restart
1
7.關閉ActiveMQ
/opt/activemq/bin/activemq stop
1
四、ActiveMQ術語介紹
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。