Apache ActiveMQ是Apache軟件基金會所研發的開放源代碼消息中間件;由于ActiveMQ是一個純Java程序,因此只需要操作系統支持Java虛擬機,ActiveMQ便可執行。
ActiveMQ是Apache下的一個項目,采用Java語言開發;
ActiveMQ 是一款非常流行的開源消息服務器,實現了JMS規范;
官網: http://activemq.apache.org/
目前最新ActiveMQ最新版本為ActiveMQ 5.15.8,支持JMS1.1,不支持2.0以上的版本,它們的主要區別是2.0以上可以使用注解進行配置。
JMS只是定義了一組有關消息傳送的規范和標準,并沒有真正實現,也就說JMS只是定義了一組接口而已。就像JDBC抽象了關系數據庫訪問、JPA抽象了對象與關系數據庫映射一樣,JMS具體的實現由不同的消息中間件廠商提供,比如Apache ActiveMQ就是JMS規范的具體實現,Apache ActiveMQ才是一個消息服務系統,而JMS不是。
最主要的功能就是:實現JMS Provider用來幫助實現高可用、高性能、可伸縮、易用和安全的企業級面向消息服務的系統。
1.完全支持JMSI.1和J2EE1。4規范(持久化,XA消息,事務〕
2.支持多種傳送協議:in-VM,TCP,SSL,UDP,JGroups,JXTA
3.可插拔的體系結構,可以靈活定制,如:消息存儲方式、安全管理等
4.很容易和Application Server集成使用
5.多種語言和協議編寫客戶端。語言Java,C,C++,C#,Ruby,P以Python,PHP
6.從設計上保證了高性能的集群,客戶端一服務器,點對點
7.可以很容易的和spring結合使用
8.支持通過JDBC和journal提供高速的消息持久化
9.支持與Axis的整合
ActiveMQ環境搭建
① ActiveMQ運行需要Java的支持,首先需要配置Java環境變量
② 將下載好的tar上傳到Linux服務器/home/soft/目錄下
③ 解壓
tar -zxvf apache-activemq-5.15.8-bin.tar.gz -C /usr/local/
其中 -C /usr/local/ 指定把文件解壓到哪里去;
解壓后就安裝完成了,即可使用,不需要其他操作。
④ 啟動
• 切換到解壓后的ActiveMQ的bin目錄下
• 執行 ./activemq start
• 啟動后有兩個端口號,一個是web控制臺:8161,一個是消息服務broker連接端口:61616
web管理控制臺admin URL地址:http://localhost:8161
默認登錄賬號 admin 密碼 admin,注意:Linux防火前要關閉
消息服務broker URL地址 : tcp://localhost:61616
⑤ 關閉
• 切換到解壓后的ActiveMQ的bin目錄下
• 執行./activemq stop
⑥ 無法關閉的問題
• 把data目錄下的所有文件及目錄都刪除
• 把activeMQ主目錄下的 tmp 目錄也刪除
• 下載activeMQ windows版本的壓縮包
• 解壓下載下來的壓縮包,解壓后就可以直接使用
• 進入解壓后的目錄的bin下面
• 在地址欄輸入 cmd 后確定
• 在dos窗口里面輸入: activemq start 進行啟動
• 關閉:activemq stop
1. 用戶注冊的時候,重點內容是將用戶信息保存到數據庫中,發短信驗證或者是發郵件增加了業務的復雜度。這時使用MQ將發短信、發郵件通知MQ由另外的服務平臺完成。
2. 搜索平臺、緩存平臺
查詢數據,建立緩存、索引,不從數據庫查詢,從緩存或者索引庫查詢,當數據庫發生增加、修改、刪除操作時發消息給MQ,緩存平臺或者是索引平臺從MQ獲取到這個消息,更新緩存或者索引。
① ActiveMQ使用的是標準的生產者(完成生產消息并發送消息)和消費者(獲取消息,完成自己的業務邏輯)模型
② 有兩種數據結構
③ Topic(發布訂閱) 一個生產者對應多個消費者,消息默認不會持久化,需要手動配置持久化。如果A服務器掛了,再生產一條消息的話,會被B服務器拿去使用,就算重新啟動,A服務器也不會再拿到消息了
④ 商品系統、庫存系統、生成商品詳情頁面的系統,現在要添加一個商品信息,消息肯定是需要讓庫存系統以及商品信息詳情頁面系統知道的。
⑤ Queue(點對點)一個生產者對應一個消費者,默認消息持久化
• StringMessage
• mapMessage
• byteMessage
• objectMessage
要完成topic模式的消息持久化,需要保證每個消費者有唯一的clientID。