RabbitMQ无疑是今朝最风行的消息队列之一,对各类说话情况的支撑也很丰富,作为一个.NET developer有须要进修和懂得这一对象。消息队列的应用处景大年夜概有3种:
1、体系集成,分布式体系的设计。各类子体系经由过程消息来对接,这种解决筹划也慢慢成长成一种架构风格,即“经由过程消息传递的架构”。
2、当体系中的同步处理方法严重影响了吞吐量,比如日记记录。假如须要记录体系中所有的用户行动日记,如不雅经由过程同步的方法记录日记势必会影响体系的响应速度,当我们将日记消息发送到消息队列,记录日记的子体系就会经由过程异步的方法去花费日记消息。
3、体系的高可用性,比如电商的秒杀场景。当某一时刻应用办事器或数据库办事器收到大年夜量请求,将会出现体系宕机。如不雅可以或许将请求转发到消息队列,再由办事器去花费这些消息将会使得请求变得安稳,进步体系的可用性。
一、开端应用RabbitMQ
RabbitMQ官网供给了具体的安装步调,别的官网还供给了RabbitMQ在六种场景的应用教程。个中教程1、3、6将覆盖99%的应用处景,所以正常来说只须要搞清跋扈这3个教程即可快速上手。
二、简单分析
我们以官方供给的教程1做个简单梳理:该教程展示了Producer若何向一个消息队列(message queue)发送一个消息(message),消息花费者(Consumer)收到该消息后花费该消息。
1、producer端:
- var factory = new ConnectionFactory() { HostName = "localhost" };
- using (var connection = factory.CreateConnection())
- {
- while (Console.ReadLine() != null)
- {
- using (var channel = connection.CreateModel())
- {
- //创建一个名叫"hello"的消息队列
- channel.QueueDeclare(queue: "hello",
- durable: false,
- exclusive: false,
- autoDelete: false,
- arguments: null);
- var message = "Hello World!";
- var body = Encoding.UTF8.GetBytes(message);
- //向该消息队列发送消息message
- channel.BasicPublish(exchange: "",
- routingKey: "hello",
- basicProperties: null,
- body: body);
- Console.WriteLine(
推荐阅读
论文:Feature Pyramid Networks for Object Detection论文地址:https://arxiv.org/abs/1612.03144这里介绍的文┞仿是来自 Facebook 的特点金字塔收集 Feature Pyramid Networks(FPN)。F>>>详细阅读
本文标题:如何优雅的使用RabbitMQ
地址:http://www.17bianji.com/lsqh/36412.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示