
RabbitMQ
fhuan123
这个作者很懒,什么都没留下…
展开
-
RabbitMQ消息队列(一): Detailed Introduction 详细介绍
1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等...原创 2016-12-16 10:12:12 · 107 阅读 · 0 评论 -
.Net下RabbitMQ的使用(8) -- 远程过程调用RPC
RPC是在计算中是一种常见的模式,是通常我要用消息队列来实现RPC有3个关键点:1. 服务的寻址2. 消息的接收3. 消息的关联 在RabbitMQ的.net客户端里,提供了2个类:SimpleRpcClient 和 SimpleRpcServer 来让我们方便的开发RPC应用。因为RabbitMQ的RPC一定是基于队列的,所以在客户端和服务端都需要要一个各自的队列,客...原创 2016-12-19 10:42:13 · 270 阅读 · 0 评论 -
.Net下RabbitMQ的使用(6) -- 持久化
消息的持久化是消息队列必备的功能之一。在这篇文章中,就介绍一下RabbitMQ的持久化机制,和它的使用。 队列的持久化在前几篇的例子中,我们常常看到如下定义queue的方法:channel.QueueDeclare("Q1", false, false, false, null);方法的第四的参数autoDelete,一般都会输入false。文档描述这个参数如果是true的...原创 2016-12-19 10:41:58 · 200 阅读 · 0 评论 -
.Net下RabbitMQ的使用(7) -- 消息的传输控制
前文中也多次提到消息传输的一些概念,这一篇比较全面的介绍一下,然后补充一些内容。 消息的应答RabbitMQ有两种应答模式,自动和手动。这也是AMQP协议所推荐的。这在point-to-point和broadcast都是一样的。自动应答-当RabbitMQ把消息发送到接收端,接收端把消息出队列的时候就自动帮你发应答消息给服务。手动应答-需要我们开发人员手动去调用ack方法去...原创 2016-12-19 10:41:32 · 104 阅读 · 0 评论 -
.Net下RabbitMQ的使用(5) -- 路由机制
理清路由机制是了解RabbitMQ来龙去脉的关键。在前面的例子中我们常常遇见这三个概念:exchange,routingKey 和 queue。真正地消息传输流程是消息先到exchange,然后exchange根据对应的routingKey放入queue,如果routingKey不匹配则丢弃。网上网友的一张图很好的展示了这个流程: 0.9 版本的AMQP协议的exchange有如...原创 2016-12-19 10:41:08 · 166 阅读 · 0 评论 -
.Net下RabbitMQ的使用(4) -- 订阅和发布
消息的订阅和发布是使用消息队列的常用场景。在上一篇文章中,虽然有多个消费者,但是一个消息只会有一个消费者来处理。而订阅和发布则是每个订阅该消息的消费者都会收到这个消息。RabbitMQ的路由机制让我们实现这个功能轻而易举。 要了解RabbitMQ的路由机制,exchange是一个关键。exchange可以叫做交换机,也似乎可以叫做路由器,反正它是用来选择路由的。前文说到,RabbitMQ...原创 2016-12-16 10:26:21 · 280 阅读 · 0 评论 -
.Net下RabbitMQ的使用(3) -- 竞争的消费者
在上一篇文章中,演示了一个发送者和一个消费者的情况。这一篇介绍一下多个消费者在同一个消息队列中获取消息的情况。 在有些应用当中,消费端接收到消息任务需要长时间的处理,如果等上一个消息处理完成以后再取下一个数据进行处理的话,势必会有一些延迟。在消息队列中的数据也会不断增多,延迟将越来越大。当然对于一个消费进程来说,在某些情况下可以起多个线程来处理,而在这里将介绍另一种处理方式,多个消费进程...原创 2016-12-16 10:23:39 · 424 阅读 · 0 评论 -
.Net下RabbitMQ的使用(2) -- 发送接收消息
在安装和配置完成RabbitMQ之后,我们就可以尝试做一个最简单的例子:发送和接收消息。 我们先来看客户端也就是发送者的代码:using RabbitMQ.Client;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;...原创 2016-12-16 10:20:43 · 192 阅读 · 0 评论 -
RabbitMQ 安装和监控
在Windows上安装Rabbit MQ 指南,最好的是这篇《Rabbit MQ Windows Installation guide》,其中还包括了使用.NET RabbitMQ.Client Nuget 包访问Rabbit MQ的示例代码。安装Rabbit MQRabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang。通过下面...原创 2016-12-16 10:14:51 · 197 阅读 · 0 评论 -
.Net下RabbitMQ的使用(9) -- 在WCF下使用RabbitMQ
RabbitMQ .net客户端通过自定义的Binding和Transport Binding Element扩展了WCF,使之能够在AMQP协议上使用。在WCF中,Binding作为一系列Binding Elements的栈,控制了消息传输的大部分方面如安全,消息格式,事务等等。而Binding中的Transport Binding Element传输绑定元素,则指定了服务端和客户端之间的通...原创 2016-12-19 10:42:26 · 180 阅读 · 0 评论