RabbitMQ
xianweizuo
这个作者很懒,什么都没留下…
展开
-
RabbitMQ 中arguments详解(系列一之Message TTL)
注:以下程序使用C#实现在我们使用RabbitMQ声明队列时,其中最后一个参数是arguments,那么arguments到底有什么用呢,下面我们解释其中参数的第一中用法:即消息过期时间:Message-TTL我们将最后一个参数arguments声明为:new Dictionary<string,object>{{"x-message-ttl",1000*5}//消息5秒中过期}//使用方法chanel.QueueDeclare("mytest",false,fals原创 2020-08-22 20:34:28 · 3080 阅读 · 0 评论 -
RabbitMQ 中arguments详解(系列二之x-expires)
注:以下程序使用C#实现上篇文章我们讲了RabbitMQ中最后一个参数arguments的用法:如何设置消息的过期时间,即:消息发出多长时间以后,自动删除。本篇文章我们讲解如何设置队列过期时间:x-expires首先,我们还是声明一个队列,这次我们给QueueDeclare的最后一个参数传递一个包含x-expires的字典channel.Declare("mytest",false,false,false,new Dictionary<string,object>{{"x原创 2020-08-22 20:50:12 · 1878 阅读 · 0 评论 -
RabbitMQ 中arguments详解(系列三之x-max-length)
注:以下程序使用C#实现上篇文章我们讲了RabbitMQ如何设置队列的过期时间x-expires:即在多长时间内队列未被使用,将自动删除。本篇文章我们讲解RabbitMQ如何设置队列的最大消息长度(最多容纳多少条消息)x-max-length同样,这次设置也是通过在QueueDeclare中指定参数来完成new Dictionary<string,object>{{"x-max-length",10}//最多容纳10条消息} //使用方法channel.Queue原创 2020-08-22 21:05:12 · 1460 阅读 · 0 评论 -
RabbitMQ 中arguments详解(系列四之x-max-length-bytes)
注:以下程序使用C#实现上篇文章我们讲了如何定义RabbitMQ队列的最大长度:x-max-length。本篇文章讲解如何定义队列的最大内存容量:x-max-length-bytes,当队列的内存达到指定字节时,将采用LRU算法对以往消息进行删除通过字面意思我们可以大致知道,最大内容容量是以字节(byte)为单位进行计算的,下面我们用代码实现x-max-length-bytes,并进行验证new Dictionary<stirng,object>{{"x-max-length原创 2020-08-23 11:27:04 · 1192 阅读 · 0 评论 -
RabbitMQ 中arguments详解(系列五之x-dead-letter)
注:以下程序使用C#实现上篇文章我们讲了RabbitMQ如何设置队列的最大内容容量,本篇文章我们讲解arguments参数之dead-letter(死信)RabbitMQ中的dead-letter,主要用来指定当一个消息被队列或者客户端丢弃之后,该如何处理这条消息,比如以前的文章我们讲过,队列的最大长度,当消息数量超过最大长度时,将丢弃一些消息,被丢弃的消息将无法被消费,如果使用dead-letter,我们可以指定当消息被丢弃之后,需要将消息重新发送到指定的队列使用死信要用到两种参数:x-d原创 2020-08-23 12:38:11 · 1549 阅读 · 0 评论 -
RabbitMQ之消息确认
注:以下程序使用C#实现RabbitMQ消息确认可分为两种:消费端确认和发布端确认消费端确认方式:1.自动确认:在程序中使用BasicGet方法:var channel=connection.CreateModel();//自动确认BasicGetResult result=channel.BasicGet("mytest",true);//第一个参数是队列名称,第二个参数代表是否自动确认,true:自动确认,false:不自动确认当我们给BasicGet方法第二个参数传递t原创 2020-08-23 22:41:11 · 697 阅读 · 0 评论 -
.net RabbitMQ之CreateBasicProperties:Lazy Queue,Persistent Message
注:以下程序使用C#实现我们在使用RabbitMQ发送消息到队列之后,在某些场景下,我们希望当消息没有被消费时,如果系统发生故障停止或者我们手动重启服务之后,消息仍然存在队列之中,下面我们看一下普通的使用场景:var channel=connection.CreateModel();channel.QueueDeclare("mytest",false,false,false,null);channel.QueueBind("mytest",string.Empty,"",null);for原创 2020-08-25 22:46:58 · 990 阅读 · 0 评论