winddows rabbitmq安装与配置
RabbitMQ是一个在AMQP协议标准基础上完整的,可复用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。
装RabbitMQ服务器必须首先安装 Erlang 运行环境。
注意,RabbitMQ安装的时候会占用几个端口,防火墙和其他安全工具可能会阻止RabbitMQ绑定到端口。当这种情况发生时,RabbitMQ将无法启动。确保可以打开以下端口,当然也可以安装好后自己通过修改配置文件来修改占用的端口,然后开启服务。
- 4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务
- 5672,5671:由AMQP 0-9-1和1.0客户端使用,不带TLS和TLS
- 25672:Erlang分发用于节点间和CLI工具通信,并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000)。有关详细信息,请参阅网络指南。
- 15672:HTTP API客户端和rabbitmqadmin(仅当启用管理插件时)
- 61613,61414:没有和使用TLS的STOMP客户端(只有启用了STOMP插件)
- 1883,8883 :( MQTT客户端没有和带有TLS,如果启用了MQTT插件
- 15674:STOMP-over-WebSockets客户端(只有启用了Web STOMP插件)
- 15675:MQTT-over-WebSockets客户端(仅当启用了Web MQTT插件时)
安装Erlang
安装Erlang 时要注意安装的RabbityMQ 所依赖的Erlang版本,根据RabbitMQ的要求选择一个版本,这里我要安装的RabbitMQ的版本是 3.7.7 ,他依赖的Erlang版本范围是
19.3.6.4 到 21.0.x,因此我选择版本是OTP 20.3. Erlang下载地址。下载Erlang安装包后直接安装就可以了。
设置ERLANG_HOME 环境变量

我这里是默认安装所以Erlang的安装路径在:
C:\Program Files\erl9.3\bin\erl.exe 点击确定在系统环境变量里就增加刚刚添加的ERLANG_HOME

在开始菜单查找Erlang,点击启动 打开如下界面,那么Erlang就安装成功了。接下来就安装RabbitMQ。
安装RabbitMQ
可以在RabbitMQ的官方网站下载最新版本的RabbitMQ服务器安装程序,RabbitMQ下载地址, 这里我下载的是官方推荐的最新版本rabbitmq-server-3.7.7.exe, 然后点击默认安装。
RabbitMQ安装好后是作为windows service 运行在后台。

设置RabbitMQ环境变量
RabbitMQ 安装好后在开始菜单输入rabbitmq 会看到三个菜单:

这里的三个菜单是提供控制Windows service的命令,为了能够在任意Windows命令窗口上操控RabbitMQ服务需要在系统里加一个环境变量并且配置在系统的PHTH环境变量中。
首先添加一个RABBITQM_SERVER变量:

然后在系统的path变量中配置如下:

这样就可以在windows administrator启动的CMD窗口操控RabbitMQ服务了。不需要每次都定位到:
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.7\sbin>
安装 rabbitmq_management
我们用命令查看一下RabbtitMQ的所有插件:
C:\WINDOWS\system32>rabbitmq-plugins list
看到RabbtitMQ 罗列出来了很多插件

我们用下列命令安装rabbitmq_management插件,这款插件是可以可视化的方式查看RabbitMQ 服务器实例的状态,以及操控RabbitMQ服务器。
C:\WINDOWS\system32>rabbitmq-plugins enable rabbitmq_management
运行完命令后,看到下图表示安装成功了。

现在我们在浏览器中输入:http://localhost:15672 可以看到一个登录界面:

这里可以使用默认账号guest/guest登录后的界面如下:

在浏览器中输入 http://localhost:15672/api/ 就可以看到 RabbitMQ Management HTTP API 文档,如下图:

这样就可以查看RabbitMQ server实例状态的相关信息了。
管理rabbitmq_management的用户
用命令rabbitmqctl list_users 查看一下现rabbitmq_management注册用户

发现现在只有一个用户guest,并且它的tag是administrator.
那么在命令行下创建一个用户,创建用户的命令合是:
rabbitmqctl add_user [username] [password]
现在创建一个username=rabbit1 password=rabbit1的用户, 命令如下:
rabbitmqctl add_user rabbit1 rabbit1
创建成功了:

现在看下有多少用户,跑一下命令:
rabbitmqctl list_users

发现用户列表里多了一个用户 rabbit1,但是tag是空的。使用命令给rabbit设置tag,设置tag的命令格式:
rabbitmqctl set_user_tag [tag1] [tag2] ...
一次可以给一个用户设置多个tag,也可以设置一个

现在rabbit1 有两个tag了一个是administrator ,一个是none.
有5个tag可供选择,分别是:administrator ,monitoring,policymaker,management和none 有兴趣的同学可以到这里了解各个tag的含义,其实这里的tag代表的是权限,administrator是最高权限,none表示不能访问,这里administrator和none的组合,权限应该是向高看齐,忽略none,用的是administrator的权限。我们用rabbit1/rabbit1 登录rabbitmq_management。

其实有了rabbitmq_management这个可视化插件,很多事情都可以在这个插件里干,包括创建用户,创建交换机(Exchange)和创建队列(Queque)。
测试
创建两个.Net Core Console 类型的应用程序,一个用于发送消息,一个用于接收消息。
1. Send 端代码:
using System;
using System.Text;
using RabbitMQ.Client; namespace Q.Demo.Send
{
class Program
{
static void Main(string[] args)
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
while (true)
{
var input = Console.ReadLine();
string message = input;
var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish(exchange: "",
routingKey: "hello",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
} } Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
}
2.Receive端代码
using System;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events; namespace Q.Demo.Receive
{
class Program
{
static void Main(string[] args)
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null); var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
};
channel.BasicConsume(queue: "hello",
autoAck: true,
consumer: consumer); Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
}
}
运行输入消息效果如下:

可视化方式查看Rabbit MQ 服务器实例的状态。
输入命令:rabbitmq-plugins.bat enable rabbitmq_management
重启服务器
net stop RabbitMQ && net start RabbitMQ
查看已有用户及用户的角色:rabbitmqctl.bat list_users 默认会存在一个来宾账号 guest
新增一个用户:rabbitmqctl.bat add_user username password

下面给cywadmin来增加administrator角色
rabbitmqctl.bat set_user_tags username administrator
修改密码
guest的默认密码是guest,可以修改密码

同样也可以删除用户
rabbitmqctl.bat delete_user username

rabbitmq用户角色可分为五类:超级管理员, 监控者, 策略制定者, 普通管理者以及其他
(1)超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2)监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3)策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。
(4)普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他的
来源: https://www.cnblogs.com/vaiyanzi/p/9531607.html
https://www.cnblogs.com/5ishare/p/6716142.html
winddows rabbitmq安装与配置的更多相关文章
- RabbitMQ学习系列(二): RabbitMQ安装与配置
上一篇,简单介绍了RabbitMQ的情况还有一些相关的概念,这一篇,会讲讲 RabbitMQ安装与配置. 1.安装 Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装RabbitM ...
- RabbitMQ(一):RabbitMQ 安装与配置(Mac)
一.rabbitmq 安装与配置 安装: brew install rabbitmq # 进入安装目录 cd /usr/local/Cellar/rabbitmq/3.7.12 # 启动 brew s ...
- 记一次RabbitMq 安装和配置坑
记一次RabbitMq 安装和配置坑 正常情况下安装 先安装erl ,在安装rabbitmq 这个在windows下的安装没什么技巧,按照默认一路下一步就ok.安装好后可以到cmd测试是否安装好. 测 ...
- SpringBoot(九)RabbitMQ安装及配置和使用,消息确认机制
Windows下RabbitMQ安装及配置地址: https://blog.csdn.net/zhm3023/article/details/82217222RabbitMQ(四)订阅模式:https ...
- windows RabbitMQ安装与配置
windows RabbitMQ安装与配置 1.安装Erlang 下载地址: http://www.erlang.org/downloads 注意: 右键以管理员身份进行安装,否则将导致后续无法启动 ...
- RabbitMQ安装和配置
RabbitMQ: MQ:message queue.MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来 ...
- Rabbitmq安装与配置
install: 1.安装Erlang: $yum -y install erlang 2.安装rabbitmq-server: $rpm --import https://www.rabbitmq. ...
- Windows下RabbitMQ安装及配置
下载rabbitmq_server以及Erlang OTP平台 安装好了启动服务就行了 也可用命令 net start RabbitMQ 或 net stop RabbitMQ 配置用户添加环境变 ...
- rabbitmq 安装和配置
1.拉取镜像文件:docker pull centos 2.建立容器,且shell方式进入:docker run -it --name centos.rabbit centos /bin/bash 3 ...
随机推荐
- 【HICP Gauss】数据库 升级迁移维护-2
DM-Data Manager 集群管理web工具 数据库升级 1.检查版本 依次升级.升级前全备数据 2.磁盘空间不小于表预留空间 3. 确保数据库对包有一定权限 4.升级后正常启停 python ...
- 十大排序代码实现(python)
目录 冒泡排序 快速排序 简单插入排序 希尔排序 简单选择排序 堆排序 二路归并排序 多路归并排序 计数排序 桶排序 基数排序 写在前面: 参考文章:十大经典排序算法 本文的逻辑顺序基于从第一篇参考博 ...
- [LeetCode] 0279. Perfect Squares 完全平方数
题目 Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9 ...
- 剑指Offer(二十四):二叉树中和为某一值的路径
剑指Offer(二十四):二叉树中和为某一值的路径 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.ne ...
- 导出到CSV文件
一.手工导出导出 1.winform void DataGridViewToExcel(DataGridView dataGridView1) { SaveFileDialog saveFileDia ...
- Spring源码窥探之:xxxAware接口
Aware接口是一个标志性接口,继承此接口的接口xxxAware的实现类,在容器创建完成后,会回调实现方法,下面举例: 1. 有很多xxxAware接口,下面举两个例子 /** * descripti ...
- jdk1.6文档官方下载资源
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin- ...
- win32gui.EnumWindows
python2 import win32gui, win32con, win32api import time, math, random def _MyCallback( hwnd, extra ) ...
- django使用redis
django_redis 下载 >: pip install django-redis 说明 django连接django_redis后会顶替原memcache数据库 django使用djang ...
- JVM对象创建
1.JVM对象创建:java程序运行过程中,无时无刻都有对象被创建出来.在语言层面上就是new关键字. 2.JVM对象创建过程: (1)JVM遇到一条new指令后,首先会去常量池中,检查这个指令的参数 ...