RabbitMQ安裝與初始配置

2021-09-16 13:22:58 字數 4394 閱讀 6427

目錄使用者許可權管理

system limits

日誌本文只討論linux下的rabbitmq安裝。

rabbitmq依賴於erlang,需先安裝,推薦安裝rabbitmq/erlang-rpm:

#clone原始碼

git clone

#make

cd erlang-rpm

make #需要等待較長時間

cd rpms/x86_64 #其下有兩個rpm包 erlang-19.3.6-1.alios6.x86_64.rpm erlang-debuginfo-19.3.6-1.alios6.x86_64.rpm, 選擇前者安裝

#安裝sudo rpm -ivh erlang-19.3.6-1.alios6.x86_64.rpm

#安裝rabbitmq-server

sudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm

#此時可能報:requires: socat, 以下是解決方法, 參考:

sudo wget --no-cache -o /etc/yum.repos.d/convirt.repo

sudo yum makecache

sudo yum install socat

#重新安裝rabbitmq-server

sudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm

#啟動/停止 start/stop

$sudo /sbin/service rabbitmq-server start

starting rabbitmq-server: success

rabbitmq-server.

$sudo /sbin/service rabbitmq-server stop

stopping rabbitmq-server: rabbitmq-server.

#狀態檢視

sudo rabbitmqctl status

其中狀態檢視會返回詳細的狀態資訊:

[,[,,

,,,,

,,,,

,,

,]},

}, ,

, ,,,

,,,,

,,,,

,,,,

,]},

, ,]},

, ,, ,

, ,

,]},

,]},

, ,}]

selinux和與其機制類似的系統可能會阻止rabbtmq繫結相應埠,所以安裝完之後需要確保一下埠可以開啟:

5672, 5671, amqp 0-9-1 和 1.0 客戶端埠,used by amqp 0-9-1 and 1.0 clients without and with tls(transport layer security)

25672,erlang distribution,和4369配合

15672,http_api埠,管理員使用者才能訪問,用於管理rbbitmq,需要啟用management外掛程式,rabbitmq-plugins enable rabbitmq_management,訪問http://server-name:15672/61613, 61614,當stomp外掛程式啟用的時候開啟,作為stomp客戶端埠(根據是否使用tls選擇)

1883, 8883,當mqtt外掛程式啟用的時候開啟,作為mqtt客戶端埠(根據是否使用tls選擇)

15674,基於websocket的stomp客戶端埠(當外掛程式web stomp啟用的時候開啟)

15675,基於websocket的mqtt客戶端埠(當外掛程式web mqtt啟用的時候開啟)

installing on rpm-based linux(port access)

rabbitmq~開篇與環境部署

rabbitmq有乙個預設的使用者"guest",密碼也是"guest",這個使用者預設只能通過本機訪問,eg:http://localhost:15672/,在通過http訪問之前記得啟用management外掛程式:

$rabbitmq-plugins enable rabbitmq_management
要讓其他機器可以訪問,需要建立乙個新使用者,為其分配許可權。使用者許可權可以通過rabbitmqctl執行相關命令來維護,rabbitmqctl是管理rabbitmq的命令列管理工具,下面介紹相關的命令:

#使用者列表檢視

$sudo rabbitmqctl list_users

listing users

guest [administrator]

#新增使用者

$sudo rabbitmqctl add_user chris 123

creating user "chris"

#為使用者分配許可權

$sudo rabbitmqctl set_user_tags chris administrator

setting tags for user "chris" to [administrator]

#然後就可以通過http://host:15672 登入management介面管理rabbitmq了,但此時使用者chris還沒有訪問佇列資源的許可權

rabbitmq客戶端連線到乙個服務端的時候,在它的操作指令中指定了乙個虛擬主機。服務端首先檢查是否有訪問該虛擬主機的許可權,沒有許可權的會拒絕連線。

對於exchanges和queues等資源,位於某個虛擬主機內;不同虛擬主機內即便名稱相同也代表不同的資源。當特定操作在資源上執行時第二級訪問控制開始生效。

rabbitmq在某個資源上區分了配置、寫和讀操作。配置操作建立或者銷毀資源,或者更改資源的行為。寫操作將訊息注入進資源之中。讀操作從資源中獲取訊息。

要執行特定操作使用者必須授予合適的許可權。

$sudo rabbitmqctl set_permissions -p / chris ".*" ".*" ".*"

setting permissions for user "chris" in vhost "/"

#此時使用者chris才有訪問佇列資源的許可權

rabbitmqctl(1) manual page(user management, access control)

系統級限制檢視與設定:

#檢視

$ cat /proc/sys/fs/file-max

184289

$ cat /proc/sys/fs/file-nr

1024 0 184289

#已分配檔案控制代碼的數目 分配了但沒有使用的控制代碼數 檔案控制代碼最大數目

#設定$echo 284289 > /proc/sys/fs/file-max

ulimit 命令詳解

ulimit用於shell啟動程序所占用的資源,是shell內建命令。

引數介紹:

-h 設定硬體資源限制.

-s 設定軟體資源限制.

-a 顯示當前所有的資源限制.

-c size:設定core檔案的最大值.單位:blocks

-d size:設定資料段的最大值.單位:kbytes

-f size:設定建立檔案的最大值.單位:blocks

-l size:設定在記憶體中鎖定程序的最大值.單位:kbytes

-m size:設定可以使用的常駐記憶體的最大值.單位:kbytes

-n size:設定核心可以同時開啟的檔案描述符的最大值.單位:n

-p size:設定管道緩衝區的最大值.單位:kbytes

-s size:設定堆疊的最大值.單位:kbytes

-t size:設定cpu使用時間的最大上限.單位:seconds

-v size:設定虛擬記憶體的最大值.單位:kbyteslinux

可以通過rabbitmqctl status檢視當前的限制狀態,status中的file_descriptors描述了當前的限制:

,,,

]},,]}

rabbitmqctl(1) manual page (controlling system limits on linux)

linux限制開啟檔案數量

rabbitmq預設日誌路徑:/var/log/rabbitmq/,路徑之下有兩類日誌檔案:

rabbitmq安裝與配置

rabbitmq的安裝和簡單配置 rabbitmq的說明和特性見官網 然後xz d rabbitmq server generic unix 3.6.2.tar.xz 之後用tar xvf 解壓 rabbitmq server generic unix 3.6.2.tar 注意 使用tar zxvf...

RabbitMQ配置與安裝

示例使用的是rabbitmq 3.7.9,因為rabbitmq需要建立在erlang otp平台上,首先要安裝erlang。erlang 二 開始安裝 1 先安裝erlang,如果使用opt win64的方式,開啟後直接全部點 下一步 直到安裝成功。選擇解壓或者其它非安裝的方式,記得新增一下系統環境...

RabbitMQ安裝與配置

訪問rabbitmq官網,下滑到下圖,然後選擇download installation。1 安裝erlang 由於rabbitmq需要erlang語言的支援,在安裝rabbitmq之前需要安裝erlang。sudo apt get install erlang erlang nox 2 安裝rab...