zoukankan      html  css  js  c++  java
  • RabbitMQ基础篇

    介绍

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

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

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

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

    Producer

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

    Queue

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

    Consumer

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

    "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 

  • 相关阅读:
    Linux系统下ping命令报错 name or service not know
    利用Kettle进行SQLServer与Oracle之间的数据迁移实践
    STS中配置MyBatis代码生成器
    GeoServer中配置GeoWebCache切片缓存目录
    Win10下安装msi程序包时报2503、2502错误问题及其解决办法
    常用办公软件推荐
    Excel中使用VBA进行度分秒与十进制度的转换
    ArcGIS下图层范围不正确的两种处理方式
    更改GeoServer的端口号
    Tomcat跨域访问配置
  • 原文地址:https://www.cnblogs.com/miskis/p/10019479.html
Copyright © 2011-2022 走看看