RabbitMQ產(chǎn)生的背景
1摆屯、消息隊(duì)列系統(tǒng)最在可以追溯到上個(gè)世紀(jì)(是不是感覺(jué)很久遠(yuǎn)榨汤,其實(shí)是1983年溅蛉,那時(shí)候我還沒(méi)用出生)馏艾。1983年最早的消息隊(duì)列軟件Teknekron誕生,當(dāng)時(shí)緊用于一些金融交易等系統(tǒng)捣辆。
2蔬螟、上世紀(jì)九十年代,誕生了多家消息隊(duì)列系統(tǒng)汽畴,例如IBM MQ旧巾、微軟的MSMQ、TIBCO MQ等消息隊(duì)列在企業(yè)中的應(yīng)用也愈加廣泛忍些。顯然這些商用的消息隊(duì)列系統(tǒng)如果企業(yè)要使用需要付出高昂的成本鲁猩,并且各個(gè)消息隊(duì)列之間使用不同的API不同的協(xié)議。
3罢坝、2004年廓握,AMQP(Advanced Message Queuing Protocol,高級(jí)消息隊(duì)列協(xié)議)開(kāi)始開(kāi)發(fā)。通過(guò)這一標(biāo)準(zhǔn)可以和任意AMQP供應(yīng)商提供的MQ服務(wù)進(jìn)行交互嘁酿。
4隙券、2006年,光陰荏苒時(shí)光如梭闹司,一轉(zhuǎn)眼就說(shuō)到了重點(diǎn)娱仔。我們的主角使用Erlang語(yǔ)言實(shí)現(xiàn)的AMQP開(kāi)源版本,RabbitMQ誕生了开仰,同年AMQP協(xié)議首次發(fā)布拟枚。
為什么叫RabbitMQ?
很多人估計(jì)和我一樣也有這個(gè)疑問(wèn)众弓,我在《RabbitMQ實(shí)戰(zhàn)》這本書(shū)中找到了答案:兔子行動(dòng)非常迅速而且繁殖起來(lái)也非常瘋狂恩溅,所以就把Rabbit用作這個(gè)分布式軟件的命名(就是真么簡(jiǎn)單)。
安裝依賴(lài)文件
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget
若不執(zhí)行以上的依賴(lài)文件的安裝谓娃,則在執(zhí)行./configure --prefix=/usr/local/erlang的過(guò)程中脚乡,最后兩行會(huì)出現(xiàn)如下錯(cuò)誤:
configure: error: No curses library functions found
configure: error: /bin/sh '/home/ding/otp_src_20.3/erts/configure' failed for erts
因在安裝erlang的make過(guò)程中會(huì)用到j(luò)ava命令,故安裝erlang前請(qǐng)檢查系統(tǒng)中是否存在jdk,若沒(méi)有需先安裝jdk
安裝erlang語(yǔ)言環(huán)境:
- 下載安裝:
wget http://www.erlang.org/download/otp_src_20.3.tar.gz #下載erlang包
tar -xvf otp_src_20.3.tar.gz #解壓
cd otp_src_20.3/ #切換到安裝路徑
./configure --prefix=/usr/local/erlang #生產(chǎn)安裝配置
make && make install #編譯安裝
- 配置erlang環(huán)境變量:
vi /etc/profile //在底部添加以下內(nèi)容
#set erlang environment
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
- source /etc/profile //使以上配置生效
測(cè)試一下是否安裝成功,在控制臺(tái)輸入命令erl
erl #如果進(jìn)入erlang的shell則證明安裝成功奶稠,退出即可俯艰。
安裝rabbitMQ
- 下載安裝(也可在http://www.rabbitmq.com/releases/rabbitmq-server/下選擇對(duì)應(yīng)的版本)
cd /usr/local #切換到計(jì)劃安裝RabbitMQ的目錄,我這里放在/usr/local
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.7.4/rabbitmq-server-generic-unix-3.7.4.tar.xz #下載RabbitMQ安裝包
xz -d rabbitmq-server-generic-unix-3.7.4.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.4.tar
mv rabbitmq_server-3.7.4/ rabbitmq
- 配置rabbitmq環(huán)境變量:
vi /etc/profile
#set rabbitmq environment
export PATH=$PATH:/usr/local/rabbitmq/sbin
source /etc/profile
- 啟動(dòng)服務(wù)
rabbitmq-server -detached #啟動(dòng)rabbitmq锌订,-detached代表后臺(tái)守護(hù)進(jìn)程方式啟動(dòng)竹握。
查看狀態(tài),如果顯示如下截圖說(shuō)明安裝成功:
rabbitmqctl status
其他相關(guān)命令
啟動(dòng)服務(wù):rabbitmq-server -detached【 /usr/local/rabbitmq/sbin/rabbitmq-server -detached 】
查看狀態(tài):rabbitmqctl status【 /usr/local/rabbitmq/sbin/rabbitmqctl status 】
關(guān)閉服務(wù):rabbitmqctl stop【 /usr/local/rabbitmq/sbin/rabbitmqctl stop 】
列出角色:rabbitmqctl list_users
配合網(wǎng)頁(yè)插件
首先創(chuàng)建目錄辆飘,否則可能報(bào)錯(cuò):
mkdir /etc/rabbitmq
然后啟用插件:
rabbitmq-plugins enable rabbitmq_management
配置防火墻:
配置linux 端口 15672 網(wǎng)頁(yè)管理 5672 AMQP端口:
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=5672/tcp
systemctl restart firewalld.service
現(xiàn)在你在瀏覽器中輸入服務(wù)器IP:15672 就可以看到RabbitMQ的WEB管理頁(yè)面了啦辐,是不是很興奮,可是你沒(méi)有賬號(hào)密碼蜈项,別急芹关。
配置訪(fǎng)問(wèn)賬號(hào)密碼的和權(quán)限
默認(rèn)網(wǎng)頁(yè)是不允許訪(fǎng)問(wèn)的,需要增加一個(gè)用戶(hù)修改一下權(quán)限紧卒,代碼如下:
rabbitmqctl add_user superrd superrd #添加用戶(hù)侥衬,后面兩個(gè)參數(shù)分別是用戶(hù)名和密碼,我這都用superrd了跑芳。
rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*" #添加權(quán)限
rabbitmqctl set_user_tags superrd administrator #修改用戶(hù)角色
然后就可以遠(yuǎn)程訪(fǎng)問(wèn)了轴总,然后可直接配置用戶(hù)權(quán)限等信息。
登錄:http://ip:15672 登錄之后在admin里面把guest刪除聋亡。