erlang下載下傳
1、進入rabbitmq的github位址https://github.com/rabbitmq/erlang-rpm
點選右側的Release字樣,跳轉到釋出的軟體包下載下傳頁面
我下載下傳: https://github.com/rabbitmq/erlang-rpm/releases/download/v25.3.2/erlang-25.3.2-1.el9.x86_64.rpm
rabbitmq下載下傳
erlang和rabbitmq對應的版本:
點選右側的Release字樣,跳轉到釋出的軟體包下載下傳頁面
目前釋出出來的是:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.11.16
安裝
安裝erlang需要的支援 :
sudo yum install -y gcc perl ncurses-devel openssl openssl-devel unixODBC-devel
安裝socat(主要用于解密)
sudo yum install -y socat logrotate
安裝erlang
sudo rpm -Uvh erlang-25.3.2-1.el8.x86_64.rpm
檢視erlang版本号
erl -v
------- ------- ------- ------- ------- ------- ------- -------
解壓rabbitmq安裝包
sudo rpm -Uvh rabbitmq-server-3.11.16-1.el8.noarch.rpm
啟動rabbitmq
sudo systemctl start rabbitmq-server
檢視是否啟動
sudo systemctl status rabbitmq-server
設定rabbitmq為開機自啟動--看需要
sudo systemctl enable rabbitmq-server
設定rabbitmq圖形化界面 執行管控台插件:(不然不能在浏覽器方法)
sudo rabbitmq-plugins enable rabbitmq_management
配置
配置rabbitmq:
sudo find / -name rabbit.app
sudo vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.11.16/plugins/rabbit-3.11.16/ebin/rabbit.app
修改如下
{loopback_users, [<<"guest">>]},
修改:
{loopback_users, [<<"guest">>]}
為
{loopback_users, [guest]}
隻保留guest(不修改隻能通過localhost通路)
修改本機系統檔案
a:修改
sudo vim /etc/rabbitmq/rabbitmq-env.conf
添加:
NODENAME=rabbit
b:修改
sudo cat /etc/hostname
我的是lw-anolis你自己的根據情況來
c:修改本地
sudo vim /etc/hosts
添加
127.0.0.1 lw-anolis
重新開機
sudo systemctl restart rabbitmq-server.service
netstat -anlp|grep 5672
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN -
tcp6 0 0 :::5672 :::* LISTEN -
ps -ef|grep rabbitmq
防火牆開放15672端口
檢視幫助
sudo rabbitmqctl --help
添加使用者
sudo rabbitmqctl add_user liwu coffehome
檢視使用者
sudo rabbitmqctl list_users
改變使用者密碼
sudo rabbitmqctl change_password liwu coffehome
改變使用者權限 ----給予超級管理者角色
sudo rabbitmqctl set_user_tags liwu administrator
删除使用者
sudo rabbitmqctl delete_user user
sudo rabbitmqctl delete_user guest
使用rabbitmq,添加虛拟主機
sudo rabbitmqctl add_vhost /liwu_vhost
檢視虛拟主機
sudo rabbitmqctl list_vhosts
删除虛拟主機
sudo rabbitmqctl delete_vhost /liwu_vhost
給虛拟主機的使用者授權
# rabbitmqctl set_permissions [-p vhost] [user] [permission ⇒ (modify) (write) (read)]
sudo rabbitmqctl set_permissions -p /liwu_vhost liwu ".*" ".*" ".*"
檢視虛拟主機權限
sudo rabbitmqctl list_permissions -p /liwu_vhost
檢視使用者具體權限
sudo rabbitmqctl list_user_permissions liwu
删除權限
sudo rabbitmqctl clear_permissions -p /liwu_vhost liwu
通路
之後,請修改guest的權限 (設定密碼 角色設定為None)
控制Linux上的系統限制
運作生産工作負載的RabbitMQ安裝可能需要系統限制和核心參數調整,以便處理大量并發連接配接和隊列。
需要調整的主要設定是打開檔案的最大數量,也稱為ulimit -n。
許多作業系統上的預設值對于消息傳遞代理來說太低(在多個Linux發行版上為1024)。
我們建議在生産環境中為使用者rabbitmq允許至少65536個檔案描述符。對于許多開發工作負載而言,4096應該足夠了。
有兩個限制:OS核心允許的最大打開檔案數(fs.file-max)和每使用者限制(ulimit -n)。
前者必須高于後者。使用systemd(最近的Linux發行版)在使用systemd的發行版上,
作業系統限制通過/etc/security/limits.conf中的配置檔案進行控制,例如:
#sudo vim /etc/security/limits.conf
ulimit -S -n 4096
#source /etc/security/limits.conf
#ulimit -n
端口
PORT 4369:Erlang利用端口映射器守護程序(epmd)來parsing叢集中的節點名稱。 節點必須能夠到達對方,并且端口映射器守護程序可以使群集正常工作。
端口35197由inet_dist_listen_min / max設定防火牆必須允許此範圍内的通信在群集節點之間傳遞
RabbitMQpipe理控制台:
- 用于RabbitMQ版本3.x的PORT 15672
- 用于RabbitMQ pre 3.x的PORT 55672
PORT 5672 RabbitMQ主端口。
對于一個節點叢集,它們必須在35197和5672上35197打開。
對于任何想要使用消息隊列的伺服器,隻需要5672
預設使用者guest,密碼guest。
預設情況下,這些憑據隻能在以localhost身份連接配接到代理時使用
使用者和角色權限
在 RabbitMQ 中無法通過 AMQP 建立 VirtualHost,可以通過以下指令來建立
rabbitmqctl add_vhost [vhostname]
通常在權限管理中主要包含三步:
建立使用者
rabbitmqctl add_user superrd superrd
配置權限
set_permissions [-p ] rabbitmqctl set_permissions -p /suanyun admin '.*' '.*' '.*'
其中, 的位置分别用正規表達式來比對特定的資源,如:
'^(amq.gen.*|amq.default)#39;
可以比對 server 生成的和預設的 exchange,’^$’不比對任何資源
- exchange 和 queue 的 declare 與 delete 分别需要 exchange 和 queue 上的配置權限
- exchange 的 bind 與 unbind 需要 exchange 的讀寫權限
- queue 的 bind 與 unbind 需要 queue 寫權限 exchange 的讀權限
發消息(publish)需 exchange 的寫權限
- 擷取或清除(get、consume、purge)消息需 queue 的讀權限
示例:我們賦予 superrd 在“/”下面的全部資源的配置和讀寫權限。
rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*"
注意”/”代表 virtual host 為“/”這個“/”和 Linux 裡的根目錄是有差別的并不是 virtual host 為“/”可以通路是以的 virtual host,把這個“/”了解成字元串就行。
需要注意的是 RabbitMQ 會緩存每個 connection 或 channel 的權限驗證結果、是以權限發生變化後需要重連才能生效。
檢視權限
rabbitmqctl list_user_permissions admin
rabbitmqctl list_permissions -p /
配置角色
rabbitmqctl set_user_tags [user] [role]
RabbitMQ 中的角色分為如下五類:
none、management、policymaker、monitoring、administrator
management
使用者可以通過 AMQP 做的任何事外加:
- 列出自己可以通過 AMQP 登入的 virtual hosts
- 檢視自己的 virtual hosts 中的 queues, exchanges 和 bindings
- 檢視和關閉自己的 channels 和 connections
- 檢視有關自己的 virtual hosts 的“全局”的統計資訊,包含其他使用者在這些 virtual hosts 中的活動。
policymaker
management 可以做的任何事外加:
檢視、建立和删除自己的 virtual hosts 所屬的 policies 和 parameters
monitoring
management 可以做的任何事外加:
- 列出所有 virtual hosts,包括他們不能登入的 virtual hosts
- 檢視其他使用者的 connections 和 channels
- 檢視節點級别的資料如 clustering 和 memory 使用情況
- 檢視真正的關于所有 virtual hosts 的全局的統計資訊
administrator
policymaker 和 monitoring 可以做的任何事外加:
- 建立和删除 virtual hosts
- 檢視、建立和删除 users
- 檢視建立和删除 permissions
- 關閉其他使用者的 connections
如下示例将 superrd 設定成 administrator 角色。
rabbitmqctl set_user_tags superrd administrator