rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

作者 : 慕源网 本文共2014个字,预计阅读时间需要6分钟 发布时间: 2021-12-6 共308人阅读

简介

RabbitMQ 是一个消息代理。它接受来自发送者的消息,将这些消息存储在队列中,并将它们传递给接收者。

消息代理就像发送方和接收方之间的中介。代理的目的是接收来自应用程序的传入消息并对它们执行一些操作并将这些消息路由到正确的接收器。

在 RabbitMQ 内部,消息存储在一个队列中,该队列按照 FIFO 原则工作,这意味着先到达的消息将首先被传递。这些消息队列提供异步通信协议,意味着消息的发送方和接收方不需要同时与消息队列交互。放置在队列中的消息会一直存储,直到接收者取回它们。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

在我们的项目中使用RabbitMQ之前,我们需要在我们的电脑上安装RabbitMQ Server。

注意– 要安装 RabbitMQ Server,我们需要安装 Erlang OTP。因此,这里是设置系统的安装步骤。

安装指南

第一步是从给定的链接下载 Erlang OTP 。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

下载后,从以下链接下载RabbitMQ Server  。

现在,第一步是安装 Erlang OTP。因此,双击 EXE 文件并安装它。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

只需单击“下一步”和“下一步”,直到完成安装。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

安装完成后,如下安装RabbitMQ Server。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

允许访问防火墙,如下所示。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

允许防火墙后,只需单击“完成”按钮即可完成安装过程。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

现在,我们的工作环境已经准备好了,让我们检查检查RabbitMQ服务的服务。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

现在,我们需要一些设置来检查和管理队列。

为此,我们需要启用 RabbitMQ Web 管理。因此,要启用此功能,请转到“开始”并搜索 sbin 命令提示符。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

现在,输入以下命令以启用 Web 管理。
  1. rabbitmq-plugins enable rabbitmq_management

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

rabbitmq_management 插件是以下插件的组合。当您执行上述命令时,将启用以下所有插件,

  • mochiweb
  • webmachine
  • rabbitmq_web_dispatch
  • amqp_client
  • rabbitmq_management_agent
  • rabbitmq_management
在此之后,只需输入http://localhost:15672/。 它将打开以下 RabbitMQ 网页。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

默认情况下, RabbitMQ 运行在 15672 端口号上。现在,它的默认 UserId 和密码是“guest”。使用用户 ID 和密码登录后,它将带您到门户,您可以在其中检查队列、创建队列、删除队列等。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

现在,让我们启动 Visual Studio,并创建一个 Windows 应用程序项目。现在,转到 NuGet 包控制台并安装 RabbitMQ 客户端。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

而且,在这里我设计了我的表单如下。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

现在,在提交按钮下单击,编写以下代码。

private void button1_Click(object sender, EventArgs e) {  
    var factory = new ConnectionFactory() {  
        HostName = "localhost"  
    };  
    using(var connection = factory.CreateConnection())  
    using(var channel = connection.CreateModel()) {  
        channel.QueueDeclare(queue: "MyQueue",  
            durable: false,  
            exclusive: false,  
            autoDelete: false,  
            arguments: null);  
        string message = textBox1.Text;  
        var body = Encoding.UTF8.GetBytes(message);  
        channel.BasicPublish(exchange: "",  
            routingKey: "MyQueue",  
            basicProperties: null,  
            body: body);  
    }  
    MessageBox.Show("Message sent successfully.");  
}  
}  

注意– 要使用 RabbitMQ,我们需要以下命名空间。

using RabbitMQ.Client;  
代码说明

首先,我们正在创建一个到 RabbitMQ 服务器的连接。在这里,我们连接到本地机器上的代理;所以我们把本地主机。

如果我们想连接到另一台机器上的代理,我们只需在此处指定其名称或 IP 地址。所以主要是,对于连接,它将需要 3 个参数。

  1. 服务器地址
  2. 用户名
  3. 密码
  4. 创建 UI 和服务器之间的通信通道。
  5. 创建用于存储消息的队列。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

之后,我们只是从 UI 收集消息并发送到服务器。现在,试着发送一些消息,让我们检查一下队列。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

在这里,如果我们想通过双击检查 MyQueue,它将带您到一个页面,您可以在其中查看队列中的消息。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

这是 MyQueue 的概述。

rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

至此,我们已经成功地将消息从sender发送到了RabbitMQ Server。在我们的下一部分中,我们将学习如何通过创建客户端来检索这些消息。

我希望您了解 RabbitMQ 消息代理的基础知识。如果您有任何疑问,您可以提出您的反馈意见,以便我们尝试更清楚地向您解释


慕源网 » rabbitmq入门教程,使用 RabbitMQ Message Broker 的异步通信

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录