【rabbitMQ】CentOS7.x上rabbitMQ單機(jī)的安裝配置

一、RabbitMQ簡(jiǎn)介


MQ全稱為Message Queue, 是一種分布式應(yīng)用程序的的通信方法,它是消費(fèi)-生產(chǎn)者模型的一個(gè)典型的代表,producer往消息隊(duì)列中不斷寫入消息,而另一端consumer則可以讀取或者訂閱隊(duì)列中的消息。

RabbitMQ是MQ產(chǎn)品的典型代表,是一款由Erlang語言開發(fā),基于AMQP協(xié)議可復(fù)用的企業(yè)消息系統(tǒng)。業(yè)務(wù)上,可以實(shí)現(xiàn)服務(wù)提供者和消費(fèi)者之間的數(shù)據(jù)解耦,提供高可用性的消息傳輸機(jī)制,在實(shí)際生產(chǎn)中應(yīng)用相當(dāng)廣泛。


AMQP:Advanced Message Queue,高級(jí)消息隊(duì)列協(xié)議。他是應(yīng)用層協(xié)議的一個(gè)開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計(jì),基于此協(xié)議的客戶端與消息中間件可傳遞消息,并不受產(chǎn)品、開發(fā)語言等條件的限制。

rabbitMQ的兩個(gè)核心組件是exchange和queue

運(yùn)行原理如下圖:


RabbitMQ 最初起源于金融系統(tǒng),用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗。具體特點(diǎn)包括:

二、實(shí)驗(yàn)環(huán)境


系統(tǒng)操作: CentOS7.5 Mininal

IP : 192.168.1.103


三、安裝rabbitMQ


添加erlang官方倉庫

#? vim? /etc/yum.repos.d/rabbitmq_erlang.repo

##################################################

[rabbitmq_erlang]

name=rabbitmq_erlang

baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch

repo_gpgcheck=1

gpgcheck=0

enabled=1

gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey

sslverify=1

sslcacert=/etc/pki/tls/certs/ca-bundle.crt

metadata_expire=300

[rabbitmq_erlang-source]

name=rabbitmq_erlang-source

baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS

repo_gpgcheck=1

gpgcheck=0

enabled=1

gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey

sslverify=1

sslcacert=/etc/pki/tls/certs/ca-bundle.crt

metadata_expire=300

####################################################



添加rabbitMQ官方倉庫

#?rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc


#? vim?/etc/yum.repos.d/rabbitmq.repo

###########################################################

[bintray-rabbitmq-server]

name=bintray-rabbitmq-rpm

baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/

gpgcheck=0

repo_gpgcheck=0

enabled=1

############################################################

# yum clean all

# yum repolist??


# yum list?erlang?--showduplicates| sort -r

# yum list rabbitmq-server --showduplicates| sort -r


# yum? -y install epel-release?

# yum -y install? erlang? socat logrotate

# yum? -y install rabbitmq-server-3.7.10


# rpm -ql??rabbitmq-server??

# rpm -qc rabbitmq-server


啟動(dòng)rabbitMQ

# systemctl start rabbitmq-server

#?systemctl enable rabbitmq-server

# systemctl status rabbitmq-server

# cat /etc/passwd

#? head -n 20? /var/log/rabbitmq/rabbit@`hostname`.log

# ll -a /var/lib/rabbitmq/

# cat /var/lib/rabbitmq/.erlang.cookie




# ps aux | grep rabbitmq


開啟網(wǎng)頁管理界面

# rabbitmq-plugins enable rabbitmq_management

# ss -tan | grep 5672


RabbitMQ默認(rèn)監(jiān)聽端口:

4369? ?erlang發(fā)現(xiàn)端口

5672? ? client端和server端通信端口

15672? 管理界面端口

25672? server間內(nèi)部通信口


#? vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.10/ebin/rabbit.app

將 {loopback_users, [<<"guest">>]},改為:{loopback_users, []},

原因:rabbitmq從3.3.0開始禁止使用guest/guest權(quán)限通過除localhost外的訪問

#? systemctl restart rabbitmq-server


關(guān)閉防火墻

# systemctl stop firewalld?

# systemctl disable firewalld?


瀏覽器訪問??http://192.168.1.103:15672

默認(rèn)管理員用戶名密碼 : guest/guest


四、rabbitMQ命令行操作

學(xué)習(xí)rabbitmq,原理之后第一個(gè)要掌握的就是rabbitmqctl這個(gè)命令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl命令,當(dāng)然還有HTTP API和UI兩種管理手段。

# rabbitmqctl --help

# rabbitmqctl status


rabbitMQ 用戶與權(quán)限



添加用戶并授權(quán)

#? ?rabbitmqctl add_user admin? Admin@123

#? ?rabbitmqctl? set_user_tags admin? administrator

#??rabbitmqctl set_permissions? ?-p? "/"? admin? '.*'? ?'.*'? ? '.*'

# rabbitmqctl list_users

# rabbitmqctl? ?list_user_permissions? admin?




# rabbitmqctl add_vhost "/test"

# rabbitmqctl add_user test Test@123

# rabbitmqctl set_user_tags test administrator

# rabbitmqctl set_permissions -p "/test" test '.*' '.*' '.*'

# rabbitmqctl list_users

# rabbitmqctl list_user_permissions test

# rabbitmqctl list_permissions -p "/test"


配置用戶遠(yuǎn)程訪問


# vim /etc/rabbitmq/rabbitmq.config

###########################################################################

[

{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}

].


#############################################################################


# systemctl restart rabbitmq-server


瀏覽器訪問:http://192.168.1.103:15672

admin/Admin@123



五、rabbitMQ配置文件


簡(jiǎn)單的rabbitMQ應(yīng)用配置可無需配置文件,只有需要定制復(fù)雜應(yīng)用時(shí),才需要用到配置文件。

如果是用rpm包安裝,可從默認(rèn)docs目錄復(fù)制配置文件樣例:

#? cp??/usr/share/doc/rabbitmq-server-3.7.10/rabbitmq.config.example? ?/etc/rabbitmq/rabbitmq.config

#? ?cat??/etc/rabbitmq/rabbitmq.config


配置文件特點(diǎn):



在rabbitmq 3.7.0 之前,rabbitmq.conf 使用了erlang語法配置格式:

1. 配置文件的語法繼承于erlang語言,有點(diǎn)類似json

2. 注釋采用%%

3. 注意最后結(jié)尾一定要加上.,表示結(jié)束,否則啟動(dòng)會(huì)報(bào)錯(cuò)


在rabbitmq 3.7.0 之后,語法配置格式使用了sysctl 格式:

1. 單個(gè)信息都在一行里面

2. 配置信息以key value 的形式保存

3. # 開頭表示注釋


六、啟用SSL安全通訊

Management Plugin

https://www.cnblogs.com/wyt007/p/9086250.html

https://www.rabbitmq.com/management.html#single-listener-https

https://github.com/Berico-Technologies/CMF-AMQP-Configuration




七、參考


rabbitmq的整體架構(gòu)一覽

https://blog.51cto.com/cuidehua/1769486


CentOS7 安裝 RabbitMQ 3.7

https://blog.csdn.net/liang_henry/article/details/79584843


rabbitmq/erlang-rpm

https://github.com/rabbitmq/erlang-rpm


Downloading and Installing RabbitMQ

https://www.rabbitmq.com/download.html

https://www.rabbitmq.com/install-rpm.html


Management Plugin

https://www.rabbitmq.com/management.html


Server Documentation

https://www.rabbitmq.com/admin-guide.html


rpm 安裝RabbitMQ 3.7.7版本-User can only log in via localhost

https://blog.csdn.net/shenhonglei1234/article/details/82745601


rabbitMQ默認(rèn)端口記錄

https://blog.csdn.net/zhouxianling233/article/details/79623204


rabbitmqctl(8)

https://www.rabbitmq.com/rabbitmqctl.8.html


RabbitMQ手冊(cè)之rabbitmqctl

http://www.lxweimin.com/p/61a90fba1d2a


Networking and RabbitMQ

https://www.rabbitmq.com/networking.html


rabbitMQ基礎(chǔ)篇

https://blog.csdn.net/ChengDianXiaoCai/article/details/72910333


rabbitMQ管理命令rabbitmqctl詳解

https://www.ywnds.com/?p=4738


RabbitMQ :常用命令 與 圖形管理 及 用戶權(quán)限

http://www.lxweimin.com/p/0964f6c46dc5


RabbitMQ on QingCloud AppCenter 用戶手冊(cè)

https://docs.qingcloud.com/product/big_data/rabbitmq/README.html#%E5%88%9B%E5%BB%BA-rabbitmq


rabbitmqadmin 命令行客戶端工具

https://www.rabbitmq.com/management-cli.html


rabbitMQ配置文件

https://www.cnblogs.com/zhming26/p/6140307.html

https://www.rabbitmq.com/configure.html#configuration-file


rabbitmq-server/docs/rabbitmq.conf.example

https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example


rabbitmq之配置文件詳解

https://www.cnblogs.com/cwp-bg/p/8397639.html


rabbitmq 生產(chǎn)環(huán)境配置

https://www.cnblogs.com/operationhome/p/10483840.html


RabbitMQ-官方指南-RabbitMQ配置

http://www.blogjava.net/qbna350816/archive/2016/08/02/431415.html


rabbitMQ消息隊(duì)列: 啟用SSL安全通訊

https://www.cnblogs.com/wyt007/p/9086250.html


CMF - AMQP - Configuration

https://github.com/Berico-Technologies/CMF-AMQP-Configuration


RabbitMQ技術(shù)入門與實(shí)戰(zhàn)

https://blog.csdn.net/Super_RD/column/info/15500

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Yum安裝RabbitMQ3.6.11與Erlange20配置及優(yōu)化 RabbitMQ簡(jiǎn)介 AMQP,即Advan...
    三杯水Plus閱讀 4,623評(píng)論 0 7
  • 什么叫消息隊(duì)列? 消息(Message)是指在應(yīng)用間傳送的數(shù)據(jù)。消息可以非常簡(jiǎn)單,比如只包含文本字符串,也可以更復(fù)...
    Agile_dev閱讀 2,386評(píng)論 0 24
  • 應(yīng)用場(chǎng)景 異步處理 場(chǎng)景說明:用戶注冊(cè)后,需要發(fā)注冊(cè)郵件和注冊(cè)短信,傳統(tǒng)的做法有兩種: 1.串行的方式 2.并行的...
    lijun_m閱讀 1,847評(píng)論 0 3
  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981閱讀 15,979評(píng)論 2 11
  • 關(guān)于消息隊(duì)列,從前年開始斷斷續(xù)續(xù)看了些資料,想寫很久了,但一直沒騰出空,近來分別碰到幾個(gè)朋友聊這塊的技術(shù)選型,是時(shí)...
    預(yù)流閱讀 585,338評(píng)論 51 786