RabbitMQ 中文文档 : http://rabbitmq.mr-ping.com/description.html

官方教程译文:

一 http://blog.csdn.net/xiaoxian8023/article/details/48679609

二 http://blog.csdn.net/xiaoxian8023/article/details/48681987

三 http://blog.csdn.net/xiaoxian8023/article/details/48710653

四 http://blog.csdn.net/xiaoxian8023/article/details/48729479

五 http://blog.csdn.net/xiaoxian8023/article/details/48733249

六 http://blog.csdn.net/xiaoxian8023/article/details/48806871

七 http://blog.csdn.net/xiaoxian8023/article/details/48826857

1. BasicPublish发送久化消息  

       var properties = channel.CreateBasicProperties();
properties.SetPersistent(false); channel.BasicPublish(exchange: "", routingKey: "task_queue", basicProperties: properties, body: body);
Console.WriteLine(" [x] Sent {0}", message);

  BasicPublish方法的参数BasicProperties,SetPersistent为false的时候消息不能持久化,重启MQ会丢失。

  SetPersistent(false); 被标记为已过时,新方法为:properties.DeliveryMode = 2; 。

2. QueueDeclare 和 QueueBind

  QueueDeclareOk QueueDeclare(string queue, bool durable, bool exclusive, bool autoDelete, IDictionary<string, object> arguments)

  void QueueBind(string queue, string exchange, string routingKey);

  从结果上看,两个方法都可以做Queue绑定之后读取Message。区别是,QueueDeclare 参数列表中所指定的 queue(实际是QueueName) 如果不存在,将会自动创建一个Queue,这种做法在实际研发中并不推荐。

3. topic 模式绑定的用法(反复几次都记不住)

  首先将 exchange 设置为 topic 模式,然后在queue绑定的时候将 routingKey 设置为 #.exchange 或者 *.*.exchange 进行路由模糊匹配。

4. 匿名 exchange 和匿名临时 queue

  日志系统比较适合匿名queue,参见 http://www.rabbitmq.com/tutorials/tutorial-three-dotnet.html 。

  有 consumer 的时候可以正常消费 message, 没有 consumer 连接的时候消息也不会保留。

5. noAck = false 用于用于标记 consumer 接受到消息必须返回给 RabbitMQ 确认信息之后,消息才会被移除。如果 consumer 的 noAck = true ,则消息发送出去就立即被移除。

6. exlusive 用于标记排他型队列,DeclareQueue 的时候,如果 exclusive:true ,则链接断开的时候 Queue 将被清除。

RabbitMQ 记录的更多相关文章

  1. RabbitMQ介绍3 - 运行和管理RabbitMQ

    安装.官方介绍:http://www.rabbitmq.com/download.html.一般产品环境会部署到Linux环境,但做为简单尝试,可以部署到Windows上(这里是部署介绍:http:/ ...

  2. CentOS 7下单机部署RabbltMQ环境的操作记录

    一. RabbitMQ简单介绍 在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息 ...

  3. CentOS7下单机部署RabbltMQ环境的操作记录

    一.RabbitMQ简单介绍在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务 ...

  4. RabbitMQ配置文件(rabbitmq.conf)

    rabbitmq.conf配置文件示例: #====================================== #RabbitMQ经纪人部分 #======================= ...

  5. 运行和管理Rabbit

    节点描述的是一个Erlang节点运行着一个Erlang应用程序.Erlang虚拟机的每个实例我们称之为节点.多个Erlang应用程序可以运行在同一个节点之上.节点之间可以进行本地通信.在RabbitM ...

  6. celery+RabbitMQ 实战记录2—工程化使用

    上篇文章中,已经介绍了celery和RabbitMQ的安装以及基本用法. 本文将从工程的角度介绍如何使用celery. 1.配置和启动RabbitMQ 请参考celery+RabbitMQ实战记录. ...

  7. RabbitMQ安装记录(windows10)

    RabbitMQ安装记录(windows10)   一.安装包准备 otp_win64_R16B03.exe(这里使用该版本,不支持ssl) otp_win64_19.0.exe(如果要开启ssl,请 ...

  8. Centos6.9下RabbitMQ集群部署记录

    之前简单介绍了CentOS下单机部署RabbltMQ环境的操作记录,下面详细说下RabbitMQ集群知识,RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言, ...

  9. RabbitMQ上手记录–part 6-Shovel

    上一part<RabbitMQ上手记录–part 5-节点集群高可用(多服务器)>讲到了通过多个服务器来搭建RabbitMQ的节点集群,示例当中提到的服务器都是在同一个局域网中的(实际上是 ...

随机推荐

  1. Python3

    1.上节内容回顾 递归: 明确的结束条件 问题规模每递归一次都应该比上一次的问题规模有所减少 效率低 高阶函数 文件: rb.wb.ab 一般用在不同系统之间传数据,和传视频流的时候用到,一般以这种形 ...

  2. 转载:Solr的自动完成实现方式(第一部分:facet方式)

    转自:http://www.cnblogs.com/ibook360/archive/2011/11/30/2269059.html 大部分人已经见过自动完成(autocomplete)的功能了(见下 ...

  3. ubuntu源码安装node7+

    在官网上下载了node的tar.xz文件(node7.3.0),安装分为两步:1.解压  2.安装 解压也分成两步,首先用xz -d xxx.tar.xz解压为xxx.tar,然后用tar -xvf ...

  4. python中的时间转换

    Python中的时间相关库有: datetime 和time. 主要形式有: datetime timestamp 相互转换: timestamp->datetime: dt = datetim ...

  5. C# 科学计数法转换成数字

    /// <summary> /// 判断输入的数是否是科学计数法.如果是的话,就会将其换算成整数并且返回,否则就返回false. /// </summary> /// < ...

  6. DUILIB圆形头象

    #ifndef __UIHEADICON_H__#define __UIHEADICON_H__ /* 名称:圆形头像控件(派生CButtonUI类)*/ class CHeadUI: public ...

  7. HDU 5652(二分+广搜)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/128683#problem/E 题目大意:给定一只含有0和1的地图,0代表可以走的格子,1代表不能走的格 子.之 ...

  8. hdu 1251 统计难题 (字典树入门题)

    /******************************************************* 题目: 统计难题 (hdu 1251) 链接: http://acm.hdu.edu. ...

  9. sql 通过表名获取所有列名

    因为要做数据迁移,也就是业务数据库的数据要迁移到历史数据库,这两个数据库理论上表结构是一样的,但因为时间原因,可能业务库升级了表结构,但历史库没有升级,且加字段的顺序不一样,导致 insert int ...

  10. shell 环境初始化顺序

    登陆shell 的执行顺序 /etc/profile /etc/profile.d/file /etc/bashrc .bashrc .bash_profile 非登录shell 的执行顺序, 例如: ...