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简单使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

安全之美

安全之美

Andy Oram、John Viega / 徐 波、沈晓斌 / 机械工业出版社华章公司 / 2011-4-28 / 65.00元

“这本深思熟虑的论文集(《安全之美》)帮助读者摆脱安全领域闪烁着欺骗光芒的心理恐惧,转而欣赏安全的微妙美感。本书描述了安全的阴和阳,以及引人注目的破坏性和闪亮光辉的建设者之间剑拔弩张的气氛。” ——Gary McGraw,Cigital公司CTO,《Software Security》及其他9本书的作者 大多数人不会太关注安全问题,直到他们的个人或商业系统受到攻击。这种发人深省的现象证......一起来看看 《安全之美》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具