CentOS安裝RabbitMQ 3.8.9


RabbitMQ簡介


在搭建RabbitMQ之前實現要介紹一下MQ,MQ是什么?

MQ全稱是Message Queue,可以理解為消息隊列的意思,簡單來說就是消息以管道的方式進行傳遞

RabbitMQ是一個實現了AMQP(Advanced Message Queuing Protocol)高級消息隊列協議的消息隊列服務,用Erlang語言的

RabbitMQ有成千上萬的用戶,是最受歡迎的開源消息代理之一。從T-Mobile到Runtastic,RabbitMQ在全球范圍內的小型初創企業和大型企業中都得到使用

RabbitMQ輕巧,易於在內部和雲中部署。它支持多種消息傳遞協議。RabbitMQ可以部署在分布式和聯合配置中,以滿足大規模,高可用性的要求

RabbitMQ可在許多操作系統和雲環境上運行,並為大多數流行語言提供了廣泛的開發人員工具

 

RabbitMQ環境版本

jdk erlang rabbitmq
1.8 23.1 3.8.9

 

 

 

 

 

 

 

下載JDK1.8並且安裝

[root@Mike-Node1 ~]# wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
[root@Mike-Node1 ~]# tar zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/ && rm -rf jdk-8u202-linux-x64.tar.gz
[root@Mike-Node1 ~]# mv /usr/local/jdk1.8.0_202/ /usr/local/jdk/
[root@Mike-Node1 ~]# vim /etc/profile

#set java environment
JAVA_HOME=/usr/local/jdk
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH


[root@Mike-Node1 ~]# source /etc/profile
[root@Mike-Node1 ~]# 
[root@Mike-Node1 ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
[root@Mike-Node1 ~]# 

jdk1.8到此安裝完成,只要 java -version 出來版本號就可以

 

安裝依賴包

[root@Mike-Node1 ~]# yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf

 

安裝Erlang

RabbitMQ和Erlang / OTP兼容性列表

下表提供了當前支持的RabbitMQ版本系列的Erlang兼容性列表。對於已到期的RabbitMQ版本,請參閱不支持的系列兼容性列表

RabbitMQ版本 最低要求的Erlang / OTP 最大支持的Erlang / OTP 筆記
3.8.9 22.3 23.x Erlang / OTP 23兼容性說明推薦使用Erlang 23.xErlang 22.x不再支持HiPE

 

 

 

[root@Mike-Node1 ~]# mkdir /data && cd /data
[root@Mike-Node1 /data]# 
[root@Mike-Node1 /data]# wget http://erlang.org/download/otp_src_23.1.tar.gz
[root@Mike-Node1 /data]# tar zxvf otp_src_23.1.tar.gz
[root@Mike-Node1 /data]# cd otp_src_23.1
[root@Mike-Node1 /data/otp_src_23.1]# 
[root@Mike-Node1 /data/otp_src_23.1]# ./otp_build autoconf
[root@Mike-Node1 /data/otp_src_23.1]# ./configure && make && make install
[root@Mike-Node1 /data/otp_src_23.1]# cd 
[root@Mike-Node1 ~]# 
[root@Mike-Node1 ~]# erl
Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

Eshell V11.1  (abort with ^G)
1> 
[root@Mike-Node1 ~]#

進入erlang命令行表示安裝成功

 

安裝Socat

[root@Mike-Node1 ~]# yum install -y socat

 

安裝RabbitMQ

[root@Mike-Node1 ~]# rpm -Uvh https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm --nodeps
Retrieving https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.WZYQYx: Header V4 RSA/SHA256 Signature, key ID 6026dfca: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:rabbitmq-server-3.8.9-1.el7      ################################# [100%]
[root@Mike-Node1 ~]# 

如果遇到erlang已安裝且版本正確,但是RabbitMQ檢測失敗的情況
可以追加參數 —nodeps (不驗證軟件包依賴)

啟動RabbitMQ

[root@Mike-Node1 ~]# systemctl enable rabbitmq-server
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
[root@Mike-Node1 ~]# 
[root@Mike-Node1 ~]# systemctl start rabbitmq-server
[root@Mike-Node1 ~]# systemctl status rabbitmq-server

 

Web插件安裝

[root@Mike-Node1 ~]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@Mike-Node1:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@Mike-Node1...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

started 3 plugins.
[root@Mike-Node1 ~]# 

 

配置用戶遠程

[root@Mike-Node1 ~]# vi /etc/rabbitmq/rabbitmq.config

[
{loopback_users, []}
].

[root@Mike-Node1 ~]#

 

修改默認配置文件路徑

rabbitmq默認數據目錄和日志路徑

默認數據目錄     /var/lib/rabbitmq/mnesia

日志路徑            /var/log/rabbitmq/

配置文件路徑    /etc/rabbitmq/

 

創建新的數據文件和日志文件目錄並給權限

[root@Mike-Node1 ~]# mkdir -p /data/rabbitmq/log   
[root@Mike-Node1 ~]# mkdir -p /data/rabbitmq/mnesia       
[root@Mike-Node1 ~]# chmod -R 755 /data/rabbitmq    
[root@Mike-Node1 ~]# chown -R rabbitmq:rabbitmq /data/rabbitmq 

創建或者新增環境參數配置文件

[root@Mike-Node1 ~]# vim /etc/rabbitmq/rabbitmq-env.conf

RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/data/rabbitmq/log

[root@Mike-Node1 ~]#

 

重啟RabbitMQ

[root@Mike-Node1 ~]# systemctl restart rabbitmq-server

 

開放防火牆端口

####firewalld防火牆
[root@Mike-Node1 ~]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
[root@Mike-Node1 ~]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
[root@Mike-Node1 ~]# firewall-cmd --reload

####iptables防火牆
[root@Mike-Node1 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
[root@Mike-Node1 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
[root@Mike-Node1 ~]# systemctl restart iptables

 

訪問管理頁面

http://IP:15672

賬號和密碼默認都是guest

 

創建管理用戶

#添加用戶(用戶admin,密碼admin)
[root@Mike-Node1 ~]# rabbitmqctl add_user admin admin
Adding user "admin" ...

#設置用戶角色(admin為管理員)
[root@Mike-Node1 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...

#設置用戶權限(接受來自所有Host的所有操作)
[root@Mike-Node1 ~]# rabbitmqctl  set_permissions -p "/" admin '.*' '.*' '.*'
Setting permissions for user "admin" in vhost "/" ...

#查看用戶權限
[root@Mike-Node1 ~]# rabbitmqctl list_user_permissions admin
Listing permissions for user "admin" ...
vhost    configure    write    read
/    .*    .*    .*
[root@Mike-Node1 ~]# 

然后使用 admin 管理員用戶登錄web管理頁面

用戶和密碼是上面添加設置的  admin admin

 

RabbitMQ常用命令

# 添加用戶
rabbitmqctl add_user <username> <password>  

# 刪除用戶
rabbitmqctl delete_user <username>  

# 修改用戶密碼
rabbitmqctl change_password <username> <newpassword>  

# 清除用戶密碼(該用戶將不能使用密碼登陸,但是可以通過SASL登陸如果配置了SASL認證)
rabbitmqctl clear_password <username> 

# 設置用戶tags(相當於角色,包含administrator,monitoring,policymaker,management)
rabbitmqctl set_user_tags <username> <tag>

# 列出所有用戶
rabbitmqctl list_users  

# 創建一個vhosts
rabbitmqctl add_vhost <vhostpath>  

# 刪除一個vhosts
rabbitmqctl delete_vhost <vhostpath>  

# 列出vhosts
rabbitmqctl list_vhosts [<vhostinfoitem> ...]  

# 針對一個vhosts給用戶賦予相關權限;
rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>  

# 清除一個用戶對vhosts的權限;
rabbitmqctl clear_permissions [-p <vhostpath>] <username>  

# 列出哪些用戶可以訪問該vhosts;
rabbitmqctl list_permissions [-p <vhostpath>]   

# 列出用戶訪問權限;
rabbitmqctl list_user_permissions <username>

 

本文分享完畢,感謝支持點贊~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM