RabbitMQ 入门系列(1)— Ubuntu 安装 RabbitMQ 及配置
1. RabbitMQ 簡介
消息 (Message) 是指在應用間傳送的數據。消息可以非常簡單,比如只包含文本字符串、JSON等,也可以很復雜,比如內嵌對象。
消息隊列中間件(Message Queue Middleware ,簡稱為 MQ)是指利用高效可靠的消息傳遞機制進行與平臺無關的數據交流,并基于數據通信來進行分布式系統的集成。通過提供消息傳遞和消息排隊模型,它可以在分布式環境下擴展進程間的通信。
消息隊列中間件,也可以稱為消息隊列或者消息中間件。它一般有兩種傳遞模式:點對點(P2P, Point-to-Point)模式和發布/訂閱(Pub/Sub)模式。
點對點模式是基于隊列的,消息生產者發送消息到隊列,消息消費者從隊列中接收消息,隊列的存在使得消息的異步傳輸成為可能。
發布訂閱模式定義了如何向一個內容節點發布和訂閱消息,這個內容節點稱為主題(topic),主題可以認為是消息傳遞的中介,消息發布者將消息發布到某個主題,而消息訂閱者則從主題中訂閱消息。主題使得消息的訂閱者與消息的發布者互相保持獨立,不需要進行接觸即可保證消息的傳遞,發布/訂閱模式在消息的一對多廣播時采用。
RabbitMQ 是基于 Erlang 語言,實現了 AMQP 協議實現的消息隊列中間件。
2. RabbitMQ 安裝
本文使用 Ubuntu16.04 安裝 RabbitMQ。
2.1 安裝 erlang
由于 RabbitMQ 需要 erlang 語言的支持,所以在安裝 RabbitMQ 之前需要先安裝 erlang
sudo apt-get install -y erlang-nox
2.2 安裝 RabbitMQ
執行以下命令
sudo apt-get update
sudo apt-get install rabbitmq-server
RabbitMQ 會被安裝在 /usr/lib/rabbitmq
2.3 RabbitMQ 和 Erlang 版本對應關系
RabbitMQ 和 Erlang 版本不匹配時會導致 RabbitMQ 環境異常,所以在安裝之前必須要注意兩者之間的匹配關系,具體可參考官方鏈接
RabbitMQ 和 Erlang 版本對應關系
2.4 使用 Docker 方式安裝
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
3. RabbitMQ 命令
- 啟動
RabbitMQ
sudo rabbitmq-server start
- 關閉
RabbitMQ
sudo rabbitmq-server stop
- 重啟
RabbitMQ
sudo rabbitmq-server restart
- 查看
RabbitMQ狀態
sudo rabbitmqctl status
輸出結果如下:
~/software$ sudo rabbitmqctl status
Status of node rabbit@iZm5egn5zptnov4j3oxh4fZ ...
[{pid,19060},{running_applications,[{rabbit,"RabbitMQ","3.5.7"},{mnesia,"MNESIA CXC 138 12","4.13.3"},{os_mon,"CPO CXC 138 46","2.4"},{xmerl,"XML parser","1.3.10"},{sasl,"SASL CXC 138 11","2.7"},{stdlib,"ERTS CXC 138 10","2.8"},{kernel,"ERTS CXC 138 10","4.2"}]},{os,{unix,linux}},{erlang_version,"Erlang/OTP 18 [erts-7.3] [source] [64-bit] [async-threads:64] [kernel-poll:true]\n"},{memory,[{total,40553872},{connection_readers,0},{connection_writers,0},{connection_channels,0},{connection_other,2592},{queue_procs,2592},{queue_slave_procs,0},{plugins,0},{other_proc,13540144},{mnesia,58592},{mgmt_db,0},{msg_index,34584},{other_ets,744088},{binary,13200},{code,16965867},{atom,654217},{other_system,8537996}]},{alarms,[]},{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},{vm_memory_high_watermark,0.4},{vm_memory_limit,838911590},{disk_free_limit,50000000},{disk_free,37157068800},{file_descriptors,[{total_limit,65436},{total_used,3},{sockets_limit,58890},{sockets_used,1}]},{processes,[{limit,1048576},{used,123}]},{run_queue,0},{uptime,25}]
- 查看
RabbitMQ進程
ps -ef | grep rabbitmq
4. RabbitMQ 配置遠程連接
遠程訪問 RabbitMQ 自己增加一個用戶,步驟如下:
- 創建一個 admin 用戶:
sudo rabbitmqctl add_user admin 123123
- 設置該用戶為 administrator 角色:
sudo rabbitmqctl set_user_tags admin administrator
- 設置權限
sudo rabbitmqctl set_permissions -p '/' admin '.' '.' '.'
- 重啟 rabbitmq 服務:
sudo service rabbitmq-server restart
之后就能用 admin 用戶遠程連接 rabbitmq server 了。
注意:RabbitMQ 默認使用 5672 端口,如果是在云端部署的話需要確認云端的 5672 端口開啟。
5. 啟用 Web 管理插件
查看默認支持的所有插件:
rabbitmq-plugins list
進入到 RabbitMQ 的安裝目錄執行
rabbitmq-plugins enable rabbitmq_management
訪問 http://localhost:15672/:
就可以看到 RabbitMQ 的 web 頁面。
總結
以上是生活随笔為你收集整理的RabbitMQ 入门系列(1)— Ubuntu 安装 RabbitMQ 及配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NumPy — 创建全零、全1、空、ar
- 下一篇: RabbitMQ 入门系列(2)— 生产