需要先安装erlang语言 socat 再安装 rabbitMQ erlang
下载列表:https://github.com/rabbitmq/erlang-rpm/releases rabbitMQ
下载列表:https://github.com/rabbitmq/rabbitmq-server/releases
1 rpm -ivh erlang-20.3.8.20-1.el7.x86_64.rpm
2 yum install socat.x86_64
3 rpm -ivh rabbitmq-server-3.7.12-1.el7.noarch.rpm
注意:
如果出现错误:
error: Failed dependencies:
erlang >= 20.3 is needed by rabbitmq-server-3.7.12-1.el7.noarch
socat is needed by rabbitmq-server-3.7.12-1.el7.noarch
epel仓库安装的erlang版本太低,是
# yum list |grep erlang
erlang.x86_64 R16B-03.18.el7 @epel
这里需要用20.3以上版本的 。到官网下载新版本的erlang
erlang-20.3.8.20-1.el7.x86_64
安装新版本:rpm -ivh erlang-20.3.8.20-1.el7.x86_64.rpm
如果遇到跟之前版本冲突,就卸载以前版本:yum remove erlang-erts-R16B-03.18.el7.x86_64 然后重新安装。
二、使用rabbitmq
启动rabbitmq,并验证启动情况
rabbitmq-server --detached &ps aux |grep rabbitmq
以服务的方式启动
service rabbitmq-server start
启用维护插件 15672端口
rabbitmq-plugins enable rabbitmq_management
# 开放端口
firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --reload
重启rabbitmq
service rabbitmq-server restart
登录
http://192.168.163.131:15672/ 用户名密码 guest
无法登陆
解决:
找到这个文件rabbit.app
/usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/ebin/rabbit.app
将:{loopback_users, [<<”guest”>>]},
改为:{loopback_users, []},
原因:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问
重启服务就OK了 systemctl restart rabbitmq-server.service
user:guest datamip
pwd:guest datamip
*************************************************************
命令:
官网命令地址:https://www.rabbitmq.com/rabbitmqctl.8.html
rabbitmq-server 服务启动或者用下面的命令
这种一直在这个窗口,不能进行其他命令的输入
1、服务器启动与关闭
启动:service rabbitmq-server start
关闭:service rabbitmq-server stop
重启:service rabbitmq-server restart
systemctl start rabbitmq-server.service
2、用户管理
新增 rabbitmqctl add_user admin admin
删除 rabbitmqctl delete_user admin
修改 rabbitmqctl change_password admin admin123
用户列表 rabbitmqctl list_users
设置角色 rabbitmqctl set_user_tags admin administrator monitoring policymaker management
设置用户权限 rabbitmqctl set_permissions -p VHostPath admin ConfP WriteP ReadP
查询所有权限 rabbitmqctl list_permissions [-p VHostPath]
指定用户权限 rabbitmqctl list_user_permissions admin
清除用户权限 rabbitmqctl clear_permissions [-p VHostPath] admin
**********************************************
http://www.rabbitmq.com/man/rabbitmqctl.1.man.html
一:rabbitmq control 【rabbitmqctl】 可以管理rabbitmq的方方面面。。。
UI工具可以观看这个rabbitmq的实时状况, http api的方式也可以查看。。。。
ui 和 命令行 的一个子集。
二:usr/rabbitmq/sbin/rabbitmqctl
rabbitmqctl [-n node] [-t timeout] [-q] {command} [command options...]
1. 应用程序和集群的管理 Application and Cluster Management
erlang 和 rabbitmq 有区别的。。
C#[CLR] 和 Ctrip 的网站
stop erlang node
stop_app rabbitmq application
start_app
reset Return a RabbitMQ node to its virgin state. 【格式化】
queues / exchanges 。。。。
force_reset 无条件的设置
2. 集群配置 【Cluster management】
RAM 和 DISK。。。
purge_queue [-p vhost] {queue} 用于清空某一个队列
3. 用户管理 User management
add_user {username} {password}
set_user_tags {username} {tag ...} 设置users的角色
authenticate_user {username} {password} 验证用户名,密码是否正确
4. Access control
set_permissions [-p vhost] {user} {conf} {write} {read}
5. Parameter Management 【第三方插件比较多】
6. 政策的管理 【Policy Management】 对queue的全局设置用的上这个“政策“,
队列的镜像也是用这个命令。
7.服务器状态 【Server Status】
《1》 list_queues [-p vhost] [queueinfoitem ...]
rabbitmqctl list_queues name durable exclusive
《2》 list_exchanges [-p vhost] [exchangeinfoitem ...]
《3》 list_bindings [-p vhost] [bindinginfoitem ...]
《4》 list_connections [connectioninfoitem ...]
《5》 list_channels [channelinfoitem ...]
connections =》 channels 建立connections是长连接 ,channels是挂在connection之上的。。
《6》 status
《7》 environment
《8》 Miscellaneous 【混合一些命令】
**************************从官网参考的命令
应用程序管理:
rabbitmqctl force_reset 无条件重新设置
rabbitmqctl reset 需要在当前rabbitmq关闭服务才能运行
rabbitmqctl shutdown 关闭rabbitmq服务节点
rabbitmqctl start_app 启动reabbitmq服务
rabbitmqctl stop 停止运行RabbitMQ的Erlang节点。
rabbitmqctl stop_app 停止rabbitmq服务
rabbitmqctl hipe_compile /tmp/rabbit-hipe/ebin 对HiPE-compile模块并将它们存储到 / tmp / rabbit-hipe / ebin目录
rabbitmqctl rotate_logs 此命令启动内部日志轮换过程
rabbitmqctl wait /var/run/rabbitmq/pid 当RabbitMQ节点启动时,此命令将返回
集群管理
rabbitmqctl join_cluster hare@elena --ram 此命令指示RabbitMQ节点加入“hare@elena (作为master)”所属的群集,作为ram节点 ,当前作为slave
rabbitmqctl cluster_status 集群的节点状态
rabbitmqctl change_cluster_node_type disc/ram 修改集群节点作为ram还是disc
rabbitmqctl -n hare@mcnulty forget_cluster_node rabbit@stringer 删除集群中指定的节点 此命令将从节点“ hare @ mcnulty ”中删除节点“ rabbit @ stringer ”
rabbitmqctl rename_cluster_node rabbit@misshelpful rabbit@cordelia 此命令将节点“ rabbit @ misshelpful ” 重命名为节点“ rabbit @ cordelia ”
rabbitmqctl update_cluster_nodes -n A C. 对该命令的需求是由于在节点离线时集群可以改变的事实。考虑节点 A和B 聚类的情况。A下降, C群集与 B,然后 B离开群集。当 A醒来时,它会尝试联系 B,但这会失败,因为 B不再在群集中。以下命令将解决此问题
rabbitmqctl force_boot
sync_queue [-p vhost] queue 同步队列
cancel_sync_queue [-p vhost] queue 取消队列同步
purge_queue [-p vhost] queue 清空队列
rabbitmqctl set_cluster_name london 这会将群集名称设置为“london”
用户管理
rabbitmqctl add_user janeway changeit 添加
rabbitmqctl delete_user janeway 删除
rabbitmqctl change_password janeway newpass 修改密码
rabbitmqctl clear_password janeway 清空密码
rabbitmqctl authenticate_user janeway verifyit 验证用户名密码
rabbitmqctl set_user_tags janeway administrator 此命令指示RabbitMQ代理确保名为“janeway”的用户是管理员
rabbitmqctl set_user_tags janeway 指示RabbitMQ代理从名为“janeway”的用户中删除任何标记
rabbitmqctl list_users 用户列表
访问控制
rabbitmqctl add_vhost test 此命令指示RabbitMQ代理创建名为“test”的新虚拟主机
rabbitmqctl delete_vhost test 此命令指示RabbitMQ代理删除名为“test”的虚拟主机
rabbitmqctl list_vhosts name tracing 此命令指示RabbitMQ代理列出所有虚拟主机
rabbitmqctl set_permissions -p my-vhost janeway “^janeway-.*” “.*” “.*” 此命令指示RabbitMQ代理向名为“janeway”的用户授予对名为“my-vhost”的虚拟主机的访问权限,并对名称以“janeway-”开头的所有资源具有配置权限,并具有写入和读取权限。所有资源:
rabbitmqctl clear_permissions -p my-vhost janeway 此命令指示RabbitMQ代理拒绝名为“janeway”的用户访问名为“my-vhost”的虚拟主机
rabbitmqctl list_permissions -p my-vhost 此命令指示RabbitMQ代理列出已被授予对名为“my-vhost”的虚拟主机的访问权限的所有用户,以及他们对该虚拟主机中资源的操作所具有的权限。请注意,空字符串表示没有授予权限:
rabbitmqctl list_user_permissions janeway 此命令指示RabbitMQ代理列出已授予用户名为“janeway”的所有虚拟主机,以及用户对这些虚拟主机中的资源的操作所具有的权限:
rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic “^janeway-.*” “^janeway-.*”
rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic “^{username}-.*” “^{username}-.*”
rabbitmqctl clear_topic_permissions -p my-vhost janeway amq.topic 此命令指示RabbitMQ代理删除名为“janeway”的用户的主题权限,用于名为“my-vhost”的虚拟主机中的主题交换“amq.topic”:
rabbitmqctl list_topic_permissions -p my-vhost 此命令指示RabbitMQ代理列出已在虚拟主机中被授予主题权限的所有用户,名为“my-vhost:”
rabbitmqctl list_topic_user_permissions janeway 此命令指示RabbitMQ代理列出已授予用户名为“janeway”的所有虚拟主机,以及用户在这些虚拟主机中拥有的主题权限
参数管理