中間件——ActiveMQ

本文章是在網(wǎng)易云課堂的課程學(xué)習(xí)中編寫,部分圖片從網(wǎng)易云課堂ppt引用

一、ActiveMQ入門

1俱饿、ActiveMQ是什么

ActiveMQ是Apache出品,最流行的塌忽,能力強(qiáng)勁的開源消息總線拍埠。 ActiveMQ是一個(gè)完全支持JMS1.1和J2EE 1.4規(guī)范的JMS Provider實(shí)現(xiàn),盡管JMS規(guī)范出臺(tái)已經(jīng)是很久的事情了土居,但是JMS在當(dāng)今的J2EE應(yīng)用中間仍然扮演著特殊的地位枣购。

2嬉探、JMS規(guī)范

Java消息服務(wù)((Java Message Service,即JMS)應(yīng)用程序接口是一個(gè)Java平臺(tái)中關(guān)于面向消息中間件(MOM)的API棉圈,用于在兩個(gè)應(yīng)用程序之間涩堤,或分布式系統(tǒng)中發(fā)送消息,進(jìn)行異步通信分瘾。Java消息服務(wù)是一個(gè)與具體平臺(tái)無關(guān)的APl胎围,是客戶端API。

JMS對(duì)象模型

image.png

JMS消息模型

image.png
image.png

JMS消息結(jié)構(gòu):包含消息頭芹敌、消息屬性痊远、消息體

消息頭:關(guān)于消息的描述信息

image.png

消息屬性:消息的附加消息頭,屬性名可以自定義

image.png

消息體:傳輸?shù)臄?shù)據(jù)

image.png

3氏捞、ActiveMQ的特性

遵循JMS規(guī)范碧聪,只要熟悉JMS規(guī)范,就能操作ActiveMQ

支持多種編程語(yǔ)言:java液茎、C逞姿、php等

支持多種傳輸協(xié)議:http協(xié)議、UDP捆等、MTP滞造、AMQP等

有多種持久化方式:文件、數(shù)據(jù)等存儲(chǔ)方式

4栋烤、ActiveMQ如何安裝及使用

準(zhǔn)備CentOS7JDK1.8環(huán)境

下載地址: http://activemq.apache.org/activemq-5158-release.html
解壓: tar -zxvf apache-activemq-5.15.8-bin.tar.gz -C /var
修改目錄名稱 mv /var/apache-activemq-5.15.8/ /var/activemq/
啟動(dòng): ./bin/activemq start
停止:./bin/activemq stop

操作練習(xí)

1谒养、創(chuàng)建一個(gè)systemd服務(wù)文件:vi /usr/lib/systemd/system/activemq.service

2、 放入內(nèi)容

[Unit]
Description=ActiveMQ service
After=network.target

[Service]
Type=forking
ExecStart=/var/activemq/bin/activemq start
ExecStop=/var/activemq/bin/activemq stop
User=root
Group=root
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=activemq

[Install]
WantedBy=multi-user.target

3明郭、 找到j(luò)ava命令所在的目錄 whereis java

4买窟、設(shè)置activemq配置文件/var/activemq/bin/env中的JAVA_HOME

# Location of the java installation
# Specify the location of your java installation using JAVA_HOME, or specify the
# path to the "java" binary using JAVACMD
# (set JAVACMD to "auto" for automatic detection)
JAVA_HOME="/usr/local/java/jdk1.8.0_181"
JAVACMD="auto"

5、 通過systemctl管理activemq啟停

  • 啟動(dòng)activemq服務(wù): systemctl start activemq
  • 查看服務(wù)狀態(tài): systemctl status activemq
  • 創(chuàng)建軟件鏈接:ln -s /usr/lib/systemd/system/activemq.service /etc/systemd/system/multi-user.target.wants/activemq.service
  • 開機(jī)自啟: systemctl enable activemq
  • 檢測(cè)是否開啟成功(enable): systemctl list-unit-files |grep activemq

6薯定、 防火墻配置始绍,Web管理端口默認(rèn)為8161(admin/admin),通訊端口默認(rèn)為61616

  • 添加并重啟防火墻
firewall-cmd --zone=public --add-port=8161/tcp --permanent
firewall-cmd --zone=public --add-port=61616/tcp --permanent
systemctl restart firewalld.service
  • 或者直接關(guān)閉防火墻: systemctl stop firewalld.service

7话侄、 修改web管理系統(tǒng)的部分配置,配置文件在/var/activemq/conf

ActiveMQ的Web管理平臺(tái)是基于jetty運(yùn)行亏推,因此在/var/activemq/conf目錄可以看到j(luò)etty的配置文件

  • 端口修改
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
  <!-- the default port number for the web console -->
  <property name="host" value="0.0.0.0"/>
  <!--此處即為管理平臺(tái)的端口-->
  <property name="port" value="8161"/>
</bean>
  • 關(guān)閉登錄
<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
  <property name="name" value="BASIC" />
  <property name="roles" value="user,admin" />
  <!-- 改為false即可關(guān)閉登陸 -->
  <property name="authenticate" value="true" />
</bean>
  • 其他配置: /var/activemq/conf/jetty-realm.properties
## ---------------------------------------------------------------------------
# 在此即可維護(hù)賬號(hào)密碼,格式:
# 用戶名:密碼,角色
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: admin, admin
user: 123, user

8年堆、 JAVA客戶端的使用

  • 標(biāo)準(zhǔn)客戶端使用
<dependency>
  <groupId>org.apache.activemq</groupId>
  <artifactId>activemq-all</artifactId>
  <version>5.15.8</version>
</dependency>
  • Spring中使用: http://spring.io/guides/gs/messaging-jms/
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>5.1.3.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-broker</artifactId>
    <version>5.15.8</version>
    <exclusions>
    <exclusion>
        <artifactId>geronimo-jms_1.1_spec</artifactId>
        <groupId>org.apache.geronimo.specs</groupId>
    </exclusion>
    </exclusions>
</dependency>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吞杭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嘀韧,更是在濱河造成了極大的恐慌篇亭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锄贷,死亡現(xiàn)場(chǎng)離奇詭異译蒂,居然都是意外死亡曼月,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門柔昼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哑芹,“玉大人,你說我怎么就攤上這事捕透〈献耍” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵乙嘀,是天一觀的道長(zhǎng)末购。 經(jīng)常有香客問我,道長(zhǎng)虎谢,這世上最難降的妖魔是什么盟榴? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮婴噩,結(jié)果婚禮上擎场,老公的妹妹穿的比我還像新娘。我一直安慰自己几莽,他們只是感情好迅办,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著章蚣,像睡著了一般站欺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纤垂,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天镊绪,我揣著相機(jī)與錄音,去河邊找鬼洒忧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛够颠,可吹牛的內(nèi)容都是我干的熙侍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼履磨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蛉抓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剃诅,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤巷送,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后矛辕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笑跛,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡付魔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了飞蹂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片几苍。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖陈哑,靈堂內(nèi)的尸體忽然破棺而出妻坝,到底是詐尸還是另有隱情,我是刑警寧澤惊窖,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布刽宪,位于F島的核電站,受9級(jí)特大地震影響界酒,放射性物質(zhì)發(fā)生泄漏圣拄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一盾计、第九天 我趴在偏房一處隱蔽的房頂上張望售担。 院中可真熱鬧,春花似錦署辉、人聲如沸族铆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哥攘。三九已至,卻和暖如春材鹦,著一層夾襖步出監(jiān)牢的瞬間逝淹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工桶唐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栅葡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓尤泽,卻偏偏與公主長(zhǎng)得像欣簇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坯约,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 中間件在中大型的系統(tǒng)中應(yīng)用較為廣泛熊咽,主要用來解決系統(tǒng)模塊之間的強(qiáng)耦合關(guān)系;也就是說消息中間件不需要同步返回結(jié)果闹丐,也...
    帥可兒妞閱讀 306評(píng)論 0 0
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評(píng)論 6 342
  • 直接使用 ActiveMQ 的方式需要重復(fù)寫很多代碼横殴,且不利于管理,Spring 提供了一種更加簡(jiǎn)便的方式————...
    Java大生閱讀 288評(píng)論 0 0
  • 消息中間件 ActiveMQ 消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無關(guān)的數(shù)據(jù)交流卿拴,并基于數(shù)據(jù)通信來進(jìn)行分布...
    哈哈大圣閱讀 505評(píng)論 0 3
  • 1. ActiveMQ 1). ActiveMQ ActiveMQ是Apache所提供的一個(gè)開源的消息系統(tǒng)衫仑,完全采...
    _凌浩雨閱讀 19,208評(píng)論 2 22