Windows下安装RabbitMQ

一、什么是RabbitMQ

MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。
RabbitMQ是一个消息中间件,生产者生成消息,消费者消费消息,它遵循AMQP(高级消息队列协议),是最广泛部署的开源消息代理。

MQ术语:

        broker:消息队列服务器实体。
  exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
  queue:消息队列,每个消息都会被投入到一个或多个队列。
  binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
  routing Key:路由关键字,exchange根据这个关键字进行消息投递。
  vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
  producer:消息生产者,就是投递消息的程序。
  consumer:消息消费者,就是接受消息的程序。
  channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

MQ工作流:

(1)客户端连接到消息队列服务器broker,打开一个channel。
(2)客户端声明一个exchange,并设置相关属性。
(3)客户端声明一个queue,并设置相关属性。
(4)客户端使用routing key,在exchange和queue之间建立好绑定关系。
(5)客户端投递消息到exchange。
(6)exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里。

二、安装RabbitMQ

由于RabbitMQ是基于erlang的,所以,在正式安装RabbitMQ之前,需要先安装一下erlang。

RabbitMQ Erlang Version对应关系详见:https://www.rabbitmq.com/which-erlang.html#intro

1、下载 并安装erlang

下载地址 :https://www.erlang.org/downloads

我们选择OTP 23.0

根据自己的系统选择下载,我这里选择的是64位的安装包

安装过程很简单,一路Next就可以了

2、下载并安装 RabbitMQ

进入官网下载 https://www.rabbitmq.com/download.html

在下载页面找到Windows Installs

下载安装成后,开始安装,一路Next即可

三、启动RabbitMQ

1、运行CMD,进入安装目录下的sbin文件夹下

2、通过命令打开可视化GUI界面

在命令行运行:

rabbitmq-plugins enable rabbitmq_management

执行成功后会显示如下信息:

执行成功之后,就能在开始菜单中找到他了。

打开浏览器,进行RabbitMQ管理后台:http://localhost:15672/

默认帐号和密码为:guest

四、关闭RabbitMQ

以管理员模式打开CMD,执行

rabbitmqctl stop

即可

五、RabbitMQ常用命令

服务启动关闭:
#启动服务
rabbitmq-server-detached
#关闭服务
rabbitmqctl stop

用户管理:
#添加用户
rabbitmqctl add_user username password
#删除用户
rabbitmqctl delete_user username
#修改用户密码
rabbitmqctl change_password username password
#查看当前用户
rabbitmqctl list_users
#设置用户角色
rabbitmqctl set_user_tags username tag  # tag分为:administrator, monitoring, management, policymaker

插件管理:
#开启插件
rabbitmq-plugins enable plugin_name
#关闭插件
rabbitmq-plugins disable plugin_name
#查看插件状态
rabbitmq-plugins list

集群配置:
#加入node到集群
rabbitmqctl stop_app
rabbitmqctl reset 
rabbitmqctl join_cluster rabbit_cluster_name
#查看集群状态
rabbitmqctl cluster_status
#从当前集群剔除节点
rabbitmqctl forget_cluster_node rabbit_node_name

vhost管理:
#添加vhost
rabbitmqctl add vhost vhost_name
#删除vhost
rabbitmqctl delete vhost vhost_name
权限管理:
#配置用户vhost的权限
rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}
conf:一个正则表达式match哪些配置资源能够被该用户访问。 
write:一个正则表达式match哪些配置资源能够被该用户读。 
read:一个正则表达式match哪些配置资源能够被该用户访问。
#查看指定vhost的用户权限
rabbitmqctl list_permissions [-p vhostPath]
#查看指定用户的权限
rabbitmqctl list_user_permissions username
#删除用户的权限
rabbitmqctl clear_permissions [-p vhostPath] {username}

节点管理:
#设置节点为磁盘模式
rabbitmqctl stop_app 
rabbitmqctl change_cluster_node_type disc 
rabbitmqctl start_app 
#设置节点为内存模式
rabbitmqctl stop_app 
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app


镜像队列配置:
rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority] 
-p Vhost: 可选参数,针对指定vhost下的queue进行设置 
Name: 策略名称 
Pattern: queue的匹配模式(正则表达式) 
Definition: 镜像定义,包括三个部分 ha-mode,ha-params,ha-sync-mode
    ha-mode: 指明镜像队列的模式,有效值为 all/exactly/nodes 
        all表示在集群所有的节点上进行镜像 
        exactly表示在指定个数的节点上进行镜像,节点的个数由ha-params指定 
        nodes表示在指定的节点上进行镜像,节点名称通过ha-params指定 
    ha-params: ha-mode模式需要用到的参数 
    ha-sync-mode: 镜像队列中消息的同步方式,有效值为automatic,manually 
  Priority: 可选参数, policy的优先级

例如,对队列名称以hello开头的所有队列进行镜像,并在集群的两个节点上完成镜像,policy的设置命令为: 
rabbitmqctl set_policy hello-ha "^hello" '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

服务器状态:rabbitmqctl status
队列信息: rabbitmqctl list_queues [-p vhostpath] [queueinfoitem]  queueinfoitem分为: name, durable, auto_delete, arguments, messages_ready, messages_unacknowled, messages, consumers, memory. 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值