Centos7安装RabbitMQ

Centos7安装RabbitMQ

  • 系统:centos7(VMware15.5.0)
  • erlang-22.0.7-1.el7.x86_64.rpm
  • cheese-release-7-1.noarch.rpm
  • rabbitmq-server-3.7.18-1.el7.noarch.rpm
  • socat-1.7.3.2-2.el7.x86_64.rpm
    在这里插入图片描述
  1. 下载并上传上面四个包到/usr/local/software
  2. 安装Erlang、RabbitMQ
rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.7.18-1.el7.noarch.rpm

默认安装完成后配置文件模板在:/usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example
要复制一份到自己设置的路径下 /usr/local/rabbitmq

cp /usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example /usr/local/rabbitmq/
cd /usr/local/rabbitmq
mv rabbitmq.config.example rabbitmq.config
  1. 修改rabbitmq.config文件
cd /cd /usr/local/rabbitmq
vim rabbitmq.config

在这里插入图片描述

  1. 启动rabbitmq插件管理
    rabbitmq-plugins enable rabbitmq_management
    注意:这里如果出错,执行以下命令卸载erlang和rabbitmq,然后重新执行一次上面配置
/usr/lib/rabbitmq/bin/rabbitmqctl stop #卸载前先停止rabbitmq服务
yum list | grep rabbitmq #查看rabbitmq安装的相关列表
yum -y remove rabbitmq-server.noarch  #卸载rabbitmq已安装的相关内容

yum list | grep erlang #查看erlang安装的相关列表
#卸载erlang已安装的相关内容
yum -y remove erlang-*
yum remove erlang.x86_64

#删除有关的所有文件
rm -rf /usr/lib64/erlang 
rm -rf /var/lib/rabbitmq
rm -rf /usr/local/erlang
rm -rf /usr/local/rabbitmq
  1. 启动RabbitMQ
chkconfig rabbitmq-server on #添加开机启动 RabbitMQ 服务
systemctl start rabbitmq-server # 启动rabbitmq服务
systemctl restart rabbitmq-server # 重启服务
systemctl stop rabbitmq-server  # 停止服务
  1. 查看服务启动状态
    systemctl status rabbitmq-server
  2. 用默认账号密码(guest)访问地址http://192.168.101.136:15672/出现权限问题
    在这里插入图片描述8. 添加一个新的用户
#创建账号
rabbitmqctl add_user root 123456
#设置用户角色:角色可以有:management、monitoring、policymaker、administrator
rabbitmqctl set_user_tags root administrator
#设置用户权限set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" root ".*" ".*" ".*"
#用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
#当前用户和角色
rabbitmqctl list_users

然后使用创建的用户和密码访问http://192.168.101.136:15672
在这里插入图片描述

  1. 这里标注一些vhost的配置
#创建vhost
sudo rabbitmqctl add_vhost {vhost_name}
#删除vhost
sudo rabbitmqctl delete_vhost {vhost_name}
#查看所有vhost
sudo rabbitmqctl list_vhosts name tracing
#为用户提供访问vhost的权限
sudo rabbitmqctl set_permissions -p {vhost_name} {username} ".*" ".*" ".*"
#查看某个vhost提供的权限
sudo rabbitmqctl list_permissions -p {vhost_name}
  1. 开放15672和5672端口(这里使用iptables)
iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

或者关闭防火墙

#查看防火状态
systemctl status firewalld
service  iptables status
#暂时关闭防火墙
systemctl stop firewalld
service  iptables stop
#永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
#重启防火墙
systemctl enable firewalld
service iptables restart
#永久关闭后重启
chkconfig iptables on
  1. rabbitmq安装延迟队列插件
    在官网上下载 https://www.rabbitmq.com/community-plugins.html下载插件rabbitmq_delayed_message_exchange,
#把这个插件上传到rabbitmq安装目录的plugins目录
cp rabbitmq_delayed_message_exchange-3.8.0.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.18/plugins
#安装插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
# 重启服务
systemctl restart rabbitmq-server 

安装成功后发现创建交换机的type多了x-delayed-message选项

为什么要安装这个插件呢,不是基于死信队列来实现延迟队列吗?因为基于死信队列的延迟队列,如果在消息生产者设置ttl,那么各个不同的消息会在同一个队列中排队,后面已经到了ttl的消息会等待前面的消息到达ttl才能被消费,这是一大bug,所以要基于插件来实现延迟队列
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值