ActiveMQ學習總結------入門篇01

注:*這篇博文文章主要介紹ActiveMQ是什麼原理性的內容和如何安裝和簡易操做


 

1、 ActiveMQ  簡介

1 ActiveMQ是什麼呢?看起來好碉堡的東西哇!

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

2  什麼是消息呢?

你們對消息的這個詞確定不會陌生,那麼在咱們ActiveMQ裏面指的是什麼,我想你應該有必要了解下java

「消息」是在兩臺計算機間傳送的數據單位。消息能夠很是簡單,例如只包含文本字符串;
也能夠更復雜,可能包含嵌入對象。web

3 什麼是隊列?

我覺的下面的這張圖對你們而言,相比已經很清楚了(能學到MQ都很了不得啦!)數據庫

 

 

 

 

4 什麼是 消息隊列?

簡單來講:apache

「消息隊列」是在消息的傳輸過程當中保存消息的容器。  編程

舉個小例子:好比你在qq上根你朋友倆天,聊天確定是雙方的,那麼你發給你朋友的消息就是存儲在這個騰訊的服務器中(理解爲消息隊列)的,當你朋友上線(登陸QQ)的時候,就從服務器中收到了這條消息vim

是否是看起來很高大上,起始很容易瞭解,哈哈瀏覽器

 

5 經常使用消費服務應用

5.1 ActiveMQ服務器

ActiveMQ 是 Apache 出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個完
全支持 JMS1.1 和 J2EE 1.4 規範的 JMS Provider 實現。(也是咱們本次用的喔!)app


5.2 RabbitMQ
RabbitMQ 是一個在 AMQP 基礎上完成的,可複用的企業消息系統。他遵循 Mozilla Public
License 開源協議。開發語言爲 Erlang。


5.3 RocketMQ
由阿里巴巴定義開發的一套消息隊列應用服務。


 

2、消息服務的應用場景

  消息隊列的主要特色是異步處理,主要目的是減小請求響應時間和解耦。因此主要的使
用場景就是將比較耗時並且不須要即時(同步)返回結果的操做做爲消息放入消息隊列。同
時因爲使用了消息隊列,只要保證消息格式不變,消息的發送方和接收方並不須要彼此聯繫,
也不須要受對方的影響,即解耦和。

 

 

 

 

5.1  異步處理

例如:用戶註冊

用戶註冊流程:
1)註冊處理以及寫數據庫
2)發送註冊成功的手機短信
3)發送註冊成功的郵件信息
若是用消息中間件:則能夠建立兩個線程來作這些事情,直接發送消息給消息中間件,
而後讓郵件服務和短信服務本身去消息中間件裏面去取消息,而後取到消息後再本身作對應
的業務操做。就是這麼方便

 

5.2 應用的解耦

例如:訂單處理

 

生成訂單流程:
1)在購物車中點擊結算
2)完成支付
3)建立訂單
4)調用庫存系統
訂單完成後,訂單系統並不去直接調用庫存系統,而是發送消息到消息中間件,寫入一
個訂單信息。庫存系統本身去消息中間件上去獲取,而後作發貨處理,並更新庫存,這樣能
夠實現互聯網型應用追求的快這一個屬性。而庫存系統讀取訂單後庫存應用這個操做也是非
常快的,因此有消息中間件對解耦來講也是一個不錯的方向。

 

5.3  流量的消峯

例如:秒殺功能

 

秒殺流程:
1)用戶點擊秒殺
2)發送請求到秒殺應用
3)在請求秒殺應用以前將請求放入到消息隊列
4)秒殺應用從消息隊列中獲取請求並處理。
好比,系統舉行秒殺活動,熱門商品。流量蜂擁而至 100 件商品,10 萬人擠進來怎麼
辦?10 萬秒殺的操做,放入消息隊列。秒殺應用處理消息隊列中的 10 萬個請求中的前 100
個,其餘的打回,通知失敗。流量峯值控制在消息隊列處,秒殺應用不會瞬間被懟死


 

3、 JMS

1 什麼是 JMS

JMS(Java Messaging Service)是 Java 平臺上有關面向消息中間件的技術規範,它便於
消息系統中的 Java 應用程序進行消息交換,而且經過提供標準的產生、發送、接收消息的接
口,簡化企業應用的開發,也就是Java幫咱們定義的一套規範

 

2 JMS模型

2.1  點對點模型(Point To Point)

生產者發送一條消息到 queue,只有一個消費者能收到。

例如:你給你的好友發送一條消息,那麼只有他能知道你發了啥

 

 

 

2.2  發佈訂閱模型(Publish/Subscribe)

發佈者發送到 topic 的消息,只有訂閱了 topic 的訂閱者纔會收到消息。

例如:你在教室裏面大喊「我不要當碼農!」,那麼在教室的全部人都會聽見。  

 

 

*學到後面的時候,你將知道,我爲何舉得這兩個例子命名能夠都在一個條件下成立,爲何還換到了另外一個不着邊際的立場點上。


4、 ActiveMQ  安裝

準備環境:Linux

 

1 下載資源

 ActiveMQ 官網: http://activemq.apache.org

版本說明
ActiveMQ5.10.x 以上版本必須使用 JDK1.8 才能正常使用。
ActiveMQ5.9.x 及如下版本使用 JDK1.7 便可正常使用。

根據本身的JDK版本酌情而定,初學者沒必要太糾結版本問題,我這裏採用的是ActiveMQ5.9.0版本

 

2 上傳至 Linux 服務器


3 解壓安裝文件

tar -zxf apache-activemq-5.9.0-bin.tar.gz

  


4 檢查權限(大部分都沒事的,能夠略過)

ls -al apache-activemq-5.9.0/bin
若是權限不足,則沒法執行,須要修改文件權限:
chmod 755 activemq

  


5 複製應用至本地目錄

cp -r apache-activemq-5.9.0 /usr/local/activemq


6 啓動 ActiveMQ

/usr/local/activemq/bin/activemq start


7 測試 ActiveMQ

檢查進程
ps aux | grep activemq
見到下述內容即表明啓動成功

 

 

 

 

7.2 管理界面

使用瀏覽器訪問 ActiveMQ 管理應用, 地址以下:
http://ip:8161/admin/
用戶名: admin
密碼: admin
ActiveMQ 使用的是 jetty 提供 HTTP 服務.啓動稍慢,建議短暫等待再訪問測試.
見到以下界面表明服務啓動成功

 

 

 

 

7.3 修改訪問端口(若是你想的話)

修改 ActiveMQ 配置文件: /usr/local/activemq/conf/jetty.xml   

 

 

 

配置文件修改完畢,保存並從新啓動 ActiveMQ 服務

 

7.4 修改用戶名和密碼

修改 conf/users.properties 配置文件.內容爲: 用戶名=密碼
保存並重啓 ActiveMQ 服務便可

 

8 重啓 ActiveMQ

/usr/local/activemq/bin/activemq restart

9 關閉 ActiveMQ

/usr/local/activemq/bin/activemq stop

  

10  配置文件 activemq.xm

自行在vim裏面輸入ese /61616搜索下位置哈(虛擬機壞了,按時不作截圖了)

配置文件中,配置的是 ActiveMQ 的核心配置信息. 是提供服務時使用的配置. 能夠修改
啓動的訪問端口. 即 java 編程中訪問 ActiveMQ 的訪問端口.
默認端口爲 61616.
使用協議是: tcp 協議.
修改端口後, 保存並重啓 ActiveMQ 服務便可.


11 ActiveMQ 

從它的目錄來講,仍是很簡單的:
* bin 存放的是腳本文件
* conf 存放的是基本配置文件
* data 存放的是日誌文件
* docs 存放的是說明文檔
* examples 存放的是簡單的實例
* lib 存放的是 activemq 所需 jar 包
* webapps 用於存放項目的目錄

 

 


 

 

ps:

*若是你感到枯燥的話,那就過會再來看看吧,原理性的東西,嗯,蠻重要的

 

原文出處:https://www.cnblogs.com/arebirth/p/activemq01.html

相關文章
相關標籤/搜索