RabbitMQ简单使用

栏目: 后端 · 发布时间: 7年前

内容简介:RabitMQ是用Elang编写的,虽然Elang本身是跨平台的,但也同时意味着搭建Rabit环境需要首先配置Elang环境。配置RabitMQ的网上教程还比较多的:在Linux下配置也是差不多的,可以参考这篇文档:总结下就是如下步骤:

环境搭建:

RabitMQ是用Elang编写的,虽然Elang本身是跨平台的,但也同时意味着搭建Rabit环境需要首先配置Elang环境。配置RabitMQ的网上教程还比较多的:

Linux 下配置也是差不多的,可以参考这篇文档: RabbitMQ基础

总结下就是如下步骤:

  1. 安装Elng运行环境

  2. 安装Elang

  3. 安装RabbitMQ

  4. 配置环境变量

  5. 启动RabbitMQServer,并配置为服务

  6. 配置可视化插件

  7. 创建用户,设置密码、分配角色

  8. 设置用户VirtualHost访问权限

配置完成后,可以从Web控制台访问: http://192.168.241.128:15672/

Docker方式环境搭建

Docker环境下安装就比较简单了,安装带部署一条命令直接到位:

docker run -d --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

默认用户名和密码是guest/guest。如果要设置用户名和权限,可以通过环境变量的方式设置:

docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management

更多的设置可以参考网上文章: 使用 Docker 部署RabbitMQ集群

安装客户端库:

Install-Package RabbitMQ.Client

创建Connection和Channel

首先还是看看RabbitMQ的模型图:

RabbitMQ简单使用

一个会话是一个channel,所有操作都是基于channel进行的。

    var factory = new ConnectionFactory
    {
        UserName = "guest", Password = "guest", VirtualHost = "/", HostName = "192.168.241.128"
    };
    
    var conn    = factory.CreateConnection();
    var channel = conn.CreateModel();

创建Exchange、Queue和Bind

    channel.ExchangeDeclare("exchange1", ExchangeType.Direct);
channel.QueueDeclare("queue1", false, false, false, null);
channel.QueueBind("queue1", "exchange1", "route1", null);

发布消息

消息是发布到exchange上,并且需要指定路由。

    var message = DateTime.Now.ToString();
byte[] data = Encoding.UTF8.GetBytes(message);
channel.BasicPublish("exchange1", "route1", null, data);

接收消息

接收消息只需要指定queue即可。

    var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine($" [x] Received {message}");
};
channel.BasicConsume(queue: "queue1", autoAck: true, consumer: consumer);

接收消息主要是通过BasicConsume函数进行,它需要指定一个消费者IBasicConsumer,这里我用的是基于事件的EventingBasicConsumer,系统默认还有许多其它的实现,这里就不一一举例了。

业务模型

我这里只是简单的演示了API的使用,具体的各业务模型可以参考官方的文档。


以上所述就是小编给大家介绍的《RabbitMQ简单使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning PHP, MySQL, JavaScript, and CSS

Learning PHP, MySQL, JavaScript, and CSS

Robin Nixon / O'Reilly Media / 2012-9-3 / USD 39.99

If you're familiar with HTML, you can quickly learn how to build interactive, data-driven websites with the powerful combination of PHP, MySQL, and JavaScript - the top technologies for creating moder......一起来看看 《Learning PHP, MySQL, JavaScript, and CSS》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具