rabbitmq实现可以使用java或者springboot的封装方法,自己创建实现,也可以使用中间件实现,相对于自建,使用rabbitmq应用场景及使用更系统安全。本文具体介绍rabbitmq中间件部署。
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性[架构] 使用较多的消息队列有 ActiveMQ(安全),RabbitMQ,ZeroMQ,Kafka(大数据),MetaMQ,RocketMQ
在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景
以下本人linux部署步骤:
安装erlang(rabbitmq需要该语言运行)
配置相关依赖环境
##yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel socat
下载安装包(本人rabbitmq要求的版本是22以上)
cd /home/erlang
wget http://www.erlang.org/download/otp_src_23.3.tar.gz
解压并安装
tar -xzvf otp_src_23.3.tar.gz
cd otp_src_23.3
./configure --prefix=/usr/local/erlang
make && make install
配置环境
vim /etc/profile
###为文件添加值start:
ERL_PATH=/home/erlang/otp_src_23.3/bin
PATH=$ERL_PATH:$PATH
###end
source /etc/profile 使配置生效,在shell中使用
查看安装情况
erl -version 查看版本号
#启动erlang命令
./bin/erl
下载rabbitmq安装包
rabbitmq官网下载地址:https://www.rabbitmq.com/ 下载压缩包(注意下载linux版的,类似:rabbitmq-server-3.9.6-1.el7.noarch.rpm
)本人下载的 centos7相应版本:在window机中下载相关包上传到linux机中
rpm包安装后没具象文件位置集,相关文件应该是融入主文件里其他位置中,使用模糊查询,查看安装位置,如: rpm -aq rabbitmq*
安装rabbitmq
##安装命令
rpm -Uvh rabbitmq-server-3.9.6-1.el7.noarch.rpm
##若报错:erlang >= 23.2 被 rabbitmq-server-3.9.6-1.el7.noarch 需要;可使用如下命令:(nodeps是忽视依赖关系,可不加)
rpm -ivh --nodeps rabbitmq-server-3.8.16-1.el7.noarch --force --nodeps
启动rabbitmq
service rabbitmq-server start
# 配置用户及WEBUI插件
##启用插件:
rabbitmq-plugins enable rabbitmq_management
##添加用户:
rabbitmqctl add_user admin admin
##设置用户tag:
rabbitmqctl set_user_tags admin administrator
##赋予用户默认vhost的全部操作权限:
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
##开机自动启动
chkconfig rabbitmq-server on
访问Rabbitmq http://xxx.xxx.xxx.xxx:15672/
默认账号密码:guest guest 只能在本地访问
使用新添用户:admin admin
访问即可,创建成功:

其他命令
1、可以查看服务状态:
[root@localhost ~]# rabbitmqctl status
2、重启服务:
[root@localhost ~]# service rabbitmq-server restart
Restarting rabbitmq-server (via systemctl):
[ 确定 ]
3、关闭服务
[root@localhost ~]# service rabbitmq-server stop
4、重置服务
[root@localhost ~]# service rabbitmq-server reset
force_reset
强制RabbitMQ node还原到最初状态.
不同于reset , force_reset 命令会无条件地重设node,不论当前管理数据库的状态和集群配置是什么。它只能在数据库或集群配置已损坏的情况下才可使用。
执行reset和force_reset之前,必须停止RabbitMQ application
将RabbitMQ node还原到最初状态.包括从所在群集中删除此node,从管理数据库中删除所有配置数据,如已配置的用户和虚拟主机,以及删除所有持久化消息.
角色及权限
1.RabbitMQ的用户角色分类:
none、management、policymaker、monitoring、administrator
2.RabbitMQ各类角色描述:
none
不能访问 management plugin
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
3.创建用户并设置角色
可以创建管理员用户,负责整个MQ的运维;可以创建RabbitMQ监控用户,负责整个MQ的监控;可以创建某个项目的专用用户,只能访问项目自己的virtual hosts
网友评论