第一章----RabbitMQ 3.8.3安裝配置

1. 消息隊列(Message queue)

消息隊列是在消息傳遞過程中保存消息的容器,通過消息隊列可以使用消息將應(yīng)用程序連接起來。這些消息通過像RabbitMQ這樣的消息代理服務(wù)器在應(yīng)用程序之間路由。

運用消息隊列的好處:

  • 解耦、易于擴展
  • 數(shù)據(jù)冗余、可恢復(fù)
  • 保證順序
  • 削峰、異步通信

2. 高級消息隊列協(xié)議(Advanced Message Queuing Protocol)

一個提供統(tǒng)一消息服務(wù)的應(yīng)用層標準高級消息隊列協(xié)議,是應(yīng)用層協(xié)議的一個開放標準,為面向消息的中間件設(shè)計。

3. RabbitMQ

RabbitMQ 是采用Erlang 語言實現(xiàn)AMQP的開源消息代理軟件(亦稱面向消息的中間件),它最初起源于金融系統(tǒng),用于在分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息。

RabbitMQ特點:

  • 可靠性:持久化、發(fā)送確認、消費確認等機制
  • 高可用:集群、鏡像
  • 支持多種協(xié)議:AMQP、STOMP(面向消息的簡單文本協(xié)議)、MQTT(消息隊列遙測傳輸)
  • 多語言
  • 管理界面
  • 插件機制

4. RabbitMQ安裝配置

Erlang官方下載地址

RabbitMQ官網(wǎng)下載地址

RabbitMQ3.8.3+Erlang22.3百度網(wǎng)盤下載地址,提取碼:68pq

  • 安裝Erlang類庫
yum -y install ncurses-devel
yum -y install openssl-devel
yum -y install unixODBC-devel
yum -y install gcc-c++
yum -y install unixODBC  unixODBC-devel wxBase  wxGTK SDL wxGTK-gl
  • 安裝Erlang
rpm -ivh esl-erlang_22.3.2-1_centos_7_amd64.rpm
# 驗證命令
erl
  • 安裝RabbitMQ
yum -y install rabbitmq-server-3.8.3-1.el7.noarch.rpm
  • 啟動、停止、查看狀態(tài)
systemctl  start/stop/status/restart rabbitmq-server.service 
  • 注冊為開機啟動
systemctl enable rabbitmq-server
systemctl disable rabbitmq-server
  • 安裝界面插件
rabbitmq-plugins enable rabbitmq_management
  • 開放guest外部訪問
vim /etc/rabbitmq/rabbitmq.config

[{rabbit, [{loopback_users, []}]}].

登錄界面管理:http://IP:15672/

這里需要把5672/15672端口防火墻開放,如果用阿里云服務(wù)器,記得設(shè)置開放端口安全組

安裝成功
  • 日志文件/var/log/rabbitmq/

    rabbit@{hostname}.log:輸出rabbitmq運行相關(guān)的信息,如網(wǎng)絡(luò)流量、用戶、交換器、隊列等信息
    rabbit@{hostname}-sasl.log:Erlang運行相關(guān)信息

  • 卸載RabbitMQ

yum -y remove rabbitmq-server.noarch 
# 查找相關(guān)目錄刪除如
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq
rm -rf /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/
rm -rf /etc/rabbitmq/
rm -rf /var/log/rabbitmq

5. RabbitMQ相關(guān)命令

  • 查看用戶、添加用戶、設(shè)置角色、修改密碼、刪除用戶
rabbitmqctl list_users
rabbitmqctl add_user fzb fzb2019
rabbitmqctl set_user_tags fzb administrator 
rabbitmqctl change_password  fzb fzb2020
rabbitmqctl delete_user fzb
  • 五類角色

    1. 超級管理員(administrator):可登陸管理控制臺(啟用management plugin的情況下),可查看所有的信息,并且可以對用戶,策略(policy)進行操作。
    2. 監(jiān)控者(monitoring):可登陸管理控制臺(啟用management plugin的情況下),同時可以查看rabbitmq節(jié)點的相關(guān)信息(進程數(shù),內(nèi)存使用情況,磁盤使用情況等)。
    3. 策略制定者(policymaker):可登陸管理控制臺(啟用management plugin的情況下), 同時可以對policy進行管理。但無法查看節(jié)點的相關(guān)信息(上圖紅框標識的部分)。
    4. 普通管理者(management):僅可登陸管理控制臺(啟用management plugin的情況下),無法看到節(jié)點信息,也無法對策略進行管理。
    5. 其他:無法登陸管理控制臺,通常就是普通的生產(chǎn)者和消費者。
  • 賦予用戶vhost權(quán)限

rabbitmqctl set_permissions -p / \fzb ".*" ".*" ".*"

p / :賦予默認虛擬機權(quán)限
\fzb:被賦予權(quán)限用戶
".*" ".*" ".*":分別映射配置、寫、讀
".*" "checks-.*" "":匹配任何隊列和交換器、只匹配名字已checks-開頭的隊列和交換器、不匹配隊列和交換器

讀:有關(guān)消費消息的任何操作
寫:發(fā)布消息
配置:隊列和交換器的創(chuàng)建和刪除

  • 查看所有用戶權(quán)限、查看指定用戶權(quán)限、清除權(quán)限
rabbitmqctl  list_permissions
rabbitmqctl  list_user_permissions fzb
rabbitmqctl clear_permissions -p / fzb
  • 查看vhost、創(chuàng)建vhost、刪除vhost
rabbitmqctl list_vhosts
rabbitmqctl add_vhost vhost_fzb
rabbitmqctl list_queues -p vhost_fzb

vhost是運行在rabbit中的虛擬主機,有一個默認的虛擬主機“/”,vhost是rabbitmq分配權(quán)限的最小細粒度。

一個rabbitmq服務(wù)器上可以運行多個vhost,以便于適用不同的業(yè)務(wù)需要,這樣做既可以滿足權(quán)限配置的要求,也可以避免不同業(yè)務(wù)之間隊列、交換機的命名沖突問題,因為不同vhost之間是隔離的。

  • 查看隊列名字、消息數(shù)目、消費者數(shù)目、內(nèi)存、屬性
rabbitmqctl list_queues -p vhost_fzb name messages consumers memory durable auto_delete
  • 查看交換器名字、類型、屬性
rabbitmqctl list_exchanges name type durable auto_delete
  • 查看綁定(該命令不接受-p之外的命令)
rabbitmqctl list_bindings -p vhost_fzb

每一個不曾起舞的日子都是對生命的辜負

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rabbitmq有3種模式,集群模式2種? 單機模式:即單機情況不做集群,就單獨運行一個rabbitmq而已。...
    嗷大彬彬閱讀 4,237評論 1 9
  • RabbitMQ采用Erlang編寫,需安裝語言庫才能運行RabbitMQ代理服務(wù)器。AMQP:高級消息隊列協(xié)議。...
    JAVA覓音閣閱讀 4,020評論 0 7
  • 什么叫消息隊列? 消息(Message)是指在應(yīng)用間傳送的數(shù)據(jù)。消息可以非常簡單,比如只包含文本字符串,也可以更復(fù)...
    Agile_dev閱讀 2,444評論 0 24
  • 網(wǎng)上rabbitmq的學(xué)習日志非常豐富,官網(wǎng)文檔也很完美,這里主要記錄學(xué)習和部署過程中的一些記錄。會按以下菜單進行...
    恐龍打醬油閱讀 2,661評論 0 4
  • 獲取UIWebView高度 UIWebView加載完成后cell高度的更新,使用通知來實現(xiàn)。 TableViewC...
    andyJi閱讀 263評論 0 0

友情鏈接更多精彩內(nèi)容