介绍

RabbitMQ 是一个消息中间件:它接收并转发消息。您可以把它想象为一个邮局:当您把需要寄出的邮件投递到邮箱,邮差最终会把邮件送给您的收件人。在这个比喻中,RabbitMQ 就是一个邮箱,也可以理解成邮局和邮递员。

RabbitMQ 和邮局的主要区别在于它不处理纸张,而是接收、存储和转发二进制数据块 - 消息

RabbitMQ 和消息传递通常使用一些术语。

生产 的意思无非就是发送。发送消息的程序就是一个 生产者

队列 就是 RabbitMQ 内部“邮箱”的名称。虽然消息流经 RabbitMQ 和您的应用程序,但它们只能存储在 队列 中。队列 只受主机的内存和磁盘的限制,它本质上就是一个很大的消息缓冲区。多个 生产者 可以发送消息到一个队列,并且多个 消费者 可以尝试从一个 队列 接收数据。这就是我们代表队列的方式:

消费 与接收有相似的含义,等待接收消息的程序就是一个 消费者

注意:生产者、消费者和中间件不是必须部署在同一主机上,实际上在大多数应用程序中它们也不是这样的。

"Hello World"

使用 .NET / C#Client

在教程的这一部分,我们将用 C# 编写两个程序:一个发送单条消息的生产者,以及接收消息并将其打印出来的消费者。我们将忽略 .NET 客户端 API 中的一些细节,专注于更简单的开始。这是一个消息传递的“Hello World”。

在下图中,P是我们的生产者,C是我们的消费者。中间的盒子是队列 - RabbitMQ 代表消费者保存的消息缓冲区。

.NET 客户端库

RabbitMQ 支持多种协议,本教程使用AMQP 0-9-1,它是一种开放的、通用的消息传递协议。RabbitMQ 提供了一些针对不同 语言环境的客户端,我们将使用 RabbitMQ 提供的 .NET 客户端。

客户端支持 .NET Core 以及 .NET Framework 4.5.1+。本教程将使用 .NET Core,因此您需要确保客户端已 安装 并且路径添加到PATH系统变量。

您也可以使用 .NET Framework 来完成本教程,但设置步骤会有所不同。

RabbitMQ .NET 客户端 5.0 及更高版本通过 nuget 发布。

本教程假定您在 Windows 上使用 PowerShell。在 MacOS 和 Linux 上,几乎所有 shell 也都可以正常工作。

下载和安装RabbitMQ

1、RabbitMQ需要安装64位支持的Erlang for Windows版本。有一个用于ErlangWindows安装程序重要提示:必须使用管理帐户运行Erlang安装程序,否则RabbitMQ安装程序所需的注册表项将不存在。

然后,运行RabbitMQ安装程序rabbitmq-server-3.7.9.exe。它将RabbitMQ安装为Windows服务,并使用默认配置启动它。

RabbitMQ下载地址:http://www.rabbitmq.com/download.html

Erlang for Windows下载地址:http://www.erlang.org/downloads

2、使用管理运行otp_win64_21.1.exe安装程序

使用系统默认即可,直接点击Next。选择安装路径后直接Next:

等待安装完成即可。

3、安装rabbitmq-server-3.7.9.exe,直接Next:

选择安装路径,然后Next,等待安装完成即可:

安装完成后检查服务中是否存在RabbitMQ的服务,RabbitMQ安装后默认为windows服务:

4、安装可视化管理插件,使用cmd定位到你的安装目下,命令如下:

rabbitmq-plugins enable rabbitmq_management

出现如下提示后在浏览器中访问:http://localhost:15672/,这里暂时无法登陆,下面创建创建用户账号后才可登录

5、创建用户,密码,绑定角色

1、查看已有用户及用户的角色:

rabbitmqctl.bat list_users

2、创建用户:

rabbitmqctl add_user 用户名 密码

在次查看用户列表,会多出刚新建的admin用户

3、设置用户账号权限,以刚创建的用户账号admin为例设置为超级管理员。 命令如下:

rabbitmqctl set_user_tags admin administrator

查看用户列表 可以看出多了管理员权限,访问:http://localhost:15672/  使用刚才创建的用户账号即可登录。

其他相关命令如下:

//设置用户权限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP //查看(指定hostpath)所有用户的权限信息
rabbitmqctl list_permissions [-p VHostPath] //查看指定用户的权限信息
rabbitmqctl list_user_permissions User // 清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User //删除用户
rabbitmqctl delete_user Username //修改用户密码
rabbitmqctl change_password 用户名 新密码

基础使用

参考园里博文:https://www.cnblogs.com/stulzq/p/7551819.html

报错信息收集

1、报错信息:None of the specified endpoints were reachable,该错误是使用的用户账号没有相应Virtual Hosts权限。登录RabbitMQ查看用户列表 没有权限访问

解决方案:点击列表中的admin 进入如下图所所示界面,设置权限保持默认即可。检查Tags是否是administrator

RabbitMQ基础篇的更多相关文章

  1. 分布式系统消息中间件——RabbitMQ的使用基础篇

    分布式系统消息中间件——RabbitMQ的使用基础篇

  2. RabbitMQ基础教程之基本使用篇

    RabbitMQ基础教程之基本使用篇 最近因为工作原因使用到RabbitMQ,之前也接触过其他的mq消息中间件,从实际使用感觉来看,却不太一样,正好趁着周末,可以好好看一下RabbitMQ的相关知识点 ...

  3. RabbitMQ基础教程之Spring&JavaConfig使用篇

    RabbitMQ基础教程之Spring使用篇 相关博文,推荐查看: RabbitMq基础教程之安装与测试 RabbitMq基础教程之基本概念 RabbitMQ基础教程之基本使用篇 RabbitMQ基础 ...

  4. RabbitMQ基础教程之使用进阶篇

    RabbitMQ基础教程之使用进阶篇 相关博文,推荐查看: RabbitMq基础教程之安装与测试 RabbitMq基础教程之基本概念 RabbitMQ基础教程之基本使用篇 I. 背景 前一篇基本使用篇 ...

  5. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  6. 转:RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  7. RabbitMq基础教程之基本概念

    RabbitMq基础教程之基本概念 RabbitMQ是一个消息队列,和Kafka以及阿里的ActiveMQ从属性来讲,干的都是一回事.消息队列的主要目的实现消息的生产者和消费者之间的解耦,支持多应用之 ...

  8. RabbitMQ基础知识(转载)

    RabbitMQ基础知识(转载) 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需 ...

  9. 消息中间件 RabbitMQ 入门篇

    消息中间件 RabbitMQ 入门篇 五月君 K8S中文社区 今天   作者:五月君,来源:Nodejs技术栈 从不浪费时间的人,没有工夫抱怨时间不够.—— 杰弗逊 RabbitMQ 是一套开源(MP ...

随机推荐

  1. Spring笔记①--helloworld

    Spring Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,它主要是为了解决企业应用开发的复杂性而诞生的: 目的:解决企业应用开发的复杂性 功能:使用基本的Javabean ...

  2. ubuntu下编译ffmpeg+SDL+ffplay提取motion vector

    编译ffmpeg: 第一步: 从官网http://ffmpeg.org/下载最新版本. 解压tar -xjvf ffmpeg-3.3.1.tar.bz2 进入目录cd ffmpeg-3.3.1 第二步 ...

  3. HDU 4745 Two Rabbits 区间dp_回文序列

    题目链接: http://blog.csdn.net/scnu_jiechao/article/details/11759333 Two Rabbits Time Limit: 10000/5000 ...

  4. lintcode-513-完美平方

    513-完美平方 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n.你需要让平方数的个数最少. 样例 给出 n = 12, 返回 3 因为 12 = 4 ...

  5. 31_网络编程(Socket套接字编程)_讲义

    今日内容介绍 1.网络三要素及传输协议 2.实现UDP协议的发送端和接收端 3.实现TCP协议的客户端和服务器 4.TCP上传文件案例 01网络模型 *A:网络模型 TCP/IP协议中的四层分别是应用 ...

  6. Git查看与修改用户名、邮箱(转载)

    用户名和邮箱的作用: 用户名和邮箱地址相当于你的身份标识,是本地Git客户端的一个变量,不会随着Git库而改变. 每次commit都会用用户名和邮箱纪录. github的contributions跟你 ...

  7. 简单 dp

    1.摆花问题 题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过a ...

  8. maven编译,控制台中文乱码解决方案

    如下图,在使用maven运行后,在控制台看到中文展示乱码 出现这个的原因是源码使用UTF-8,但是maven编译的时候使用GBK标准,如下图   为了让maven编译的时候使用UTF-8标准,使用在p ...

  9. Java 软引用和弱引用

    软引用(SoftReference) 软引用是用来描述一些有用但并不是必需的对象,在Java中用java.lang.ref.SoftReference类来表示.对于软引用关联着的对象,只有在内存不足的 ...

  10. 【Java并发编程】之一:可重入内置锁

    每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁.线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁.获得内置锁的唯一途径就是进入由这个锁保护的同步代码块 ...