ActiveMQ的簡單介紹和安裝

前言:


最近接觸到了消息隊列,學習了activeMQ,在這裏做一個簡單記錄,方便以後查詢。


一、什麼是ActiveMQ


1.1介紹

       ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出臺已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演着特殊的地位。

1.2特點

⒈ 多種語言和協議編寫客戶端。語言: Java,C,C++,C#,Ruby,Perl,Python,PHP。應用協議:OpenWire,Stomp REST,WS Notification,XMPP,AMQP 

⒉ 完全支持JMS1.1和J2EE 1.4規範 (持久化,XA消息,事務)

⒊ 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裏面去,而且也支持Spring2.0的特性 

⒋ 通過了常見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的整合 

⒑ 可以很容易得調用內嵌JMSprovider,進行測試


二、ActiveMQ的消息形式


ActiveMQ對於消息的傳遞有兩種類型:

1.一種是點對點的,即一個生產者和一個消費者一一對應;

2.另一種是發佈/訂閱模式,即一個生產者產生消息並進行發送後,可以由多個消費者進行接收。

JMS定義了五種不同的消息正文格式,以及調用的消息類型,允許你發送並接收以一些不同形式的數據,提供現有消息格式的一些級別的兼容性。五種形式如下:

· StreamMessage -- Java原始值的數據流

· MapMessage--一套名稱-值對

· TextMessage--一個字符串對象

· ObjectMessage--一個序列化的 Java對象

· BytesMessage--一個字節的數據流


三、ActiveMQ的應用場景


ActiveMQ作爲消息隊列的一種,它的應用場景實際上就是消息隊列的應用場景,這裏就說一下他的應用場景:

1. 異步處理:

拿一個用戶下訂單發貨舉例子,訂單發貨以後需要給用戶發送短信,在這期間需要修改數據庫還要發送短信,如果使用傳統的方式修改數據庫然後發短信,需要消耗修改數據庫的時間和發短信的時間,如果使用消息隊列,我們就只需要修改數據庫和寫入消息隊列,寫入消息隊列的時間基本可以忽略,這樣系統的響應時間會有所提升

2. 應用解耦:

比如:在電商分佈式系統中,有兩個系統:1.elasticsearch搜索系統2.商品系統,假如我們添加了一款商品,那麼需要在elasticsearch的索引庫中添加一個索引。傳統的方式是商品系統直接調用搜索系統的服務,假如搜索系統無法訪問,那麼就會導致添加商品失敗。如果使用消息隊列就會避免這種情況,而且還會降低耦合度

3. 流量削鋒:

比如:秒殺活動,一般會因爲流量過大,導致流量暴增,系統癱瘓。爲解決這個問題,一般需要在應用前端加入消息隊列。


四、ActiveMQ的安裝


4.1下載

1.下載地址:http://activemq.apache.org/download.html


4.2準備安裝環境

1、需要jdk

2、安裝Linux系統。生產環境都是Linux系統。(爲了方便我直接安裝到了windows中)

4.3安裝

ActiveMQ的安裝和tomcat的安裝很類似,直接解壓就可以使用

1.Windows系統安裝,

直接解壓儘可以使用,運行文件夾下的activemq.bat.bat即可


2.linux系統安裝

第一步:把ActiveMQ 的壓縮包上傳到Linux系統。

第二步:解壓縮。

第三步:啓動。

使用bin目錄下的activemq命令啓動:

[root@localhost bin]# ./activemq start

關閉:

[root@localhost bin]# ./activemq stop

查看狀態:

[root@localhost bin]# ./activemq status

linux安裝可能存在問題:

問題:

Linux安裝的activeMQ,如果訪問activeMQ時候,發現報錯405

解決:

修改hosts文件,配置機器名和127.0.0.1的映射關係。

1.在/etc/sysconfig/network文件中定義了機器名:


2.修改配置,進行映射


3.重新啓動Activemq的服務

4.4測試

Linux注意打開防火牆:8161

進入管理後臺:

http://127.0.0.1:8161/admin

用戶名:admin

密碼:admin



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章