RabbitMQ十:重要方法简述(参数)
主要方法
前言
经过前面的学习,RabbitMQ 已经拙见有一定认识和了解,今天主要针对我们在前面学习方法进行一次小总结,本篇文章也想在开头写的,但是后来考虑,如果我都把方法都一一列举,我想大家都没很不懂,很多疑问。问这方法有什么用,怎么在实例中用,等一些问题出现在脑海里,学习起来很吃力,看不懂,不理解,经过每个情景进入抒写每个对应代码demo,然后把所有方法进行一次总结,也算一次温故而知新。
channel.exchangeDeclare()
参数:队列名称,是否持久,是否独家,自动删除,参数
QueueDeclare(string queue,durable true,exclusive false,autoDelete false, IDictionary<string, object> arguments); queue:队列名称(声明);
durable:bool类型,true:在服务器重启时,能够存活;
excludsive:是否为当前连接的专用队列,在连接断后,会自动删除该队列,生产环境中应该很少用到(是否独家);
autoDelete:当没有任何消费者使用时,自动删除该队列;
arguments:参数信息,参数设置。
channel.ExchangeDeclare()
参数:交换名称,类型,是否持久,自动删除,参数
ExchangeDeclare(string exchange,string type,bool durable,bool autoDelete,IDictionary<string, object> arguments)
exchange:交换名称(声明);
type:类型有三种:direct,fanout,topic,三种主要类型(前面demo中我们都有专题讲解,详细案例);
durable:bool类型,true:服务器重启会保留下来Exchange。警告:仅设置此选项,不代表消息持久化。即不保证重启后消息还在;
autoDelete:Bool类型,true:当已经没有消费者时,服务器是否可以删除该Exch;
arguments:参数设置。
channel.QueueBind()
参数:队列名称,交换机名称,绑定键
QueueBind(string queue,string exchange,string routingKey); queue:声明队列的名称;
exchange:声明交换机的名称;
routingKey:用于通过绑定bindingkey将queue到exchange,之后便可以进行消息接受。
channel.BasicPulish()
参数:交换机名称,路由键,参数设置,内容
BasicPublish(string exchange, string routingKey, IBasicProperties basicProperties, byte[] body); exchange:交换机名称;
routingKey:路由键;
basicproperties:参数的设置,值得注意是:basicProperties。deliverymodel:0不持久化,1持久化,这里指的是消息持久化;
body:(字节)内容。
channel.BasicAck()
参数:该消息的index,
BasicAck(ulong deliveryTag, bool multiple);
deliveryTag:该消息的index;
multiple:是否批量true:将一次性ack所有小于deliveryTag的消息;确认收到消息。
channel.BasicGet()
参数:队列名称; 可理解 是个消息标记,True:消息读取自动排除,下次不会读取到,false 消息没有排除,一直存在,
BasicGet(string queue, bool noAck); queue:队列名称;
noAck:消息的确认,True:消息读取自动排除,下次不会读取到;false 消息没有排除,一直存在。
channel.BasicConsume()
参数:队列名称;消息标记;消费者名称
BasicConsume(string queue, bool noAck, IBasicConsumer consumer); quere:队列名称;
noAck:消息的确认,True:消息读取自动排除,下次不会读取到;false 消息没有排除,一直存在;
consumer:消费者名称。
channel.BasicQos()
参数:0,设置RabbitMQ不要同时给一个消费者推送多余N个消息;bool类型,是否将上面设置应用与channel,简答点说,就是channel级别,还是consumer级别
BasicQos(uint prefetchSize, ushort prefetchCount, bool global); perfetchSize:0;设置为0,没有实际研究意义;
perfetchcount:会告诉RabbitMQ不要同时给一个消费者推送多于N个消息,一旦N个消息还没有ack,则将consume将block掉,知道消息ack;
global:bool类型,将上面设置应用与channel,简单说,就是上面限制channel级别还是consumer级别。
end
RabbitMQ写到这里,即将是尾声了,我也对RabbitMQ有了一定了解和认识,博客有时候不止帮助别人,某天回头温故的时候轻易上手,不会太耿,我会在整理看看相关资料,如果还有,继续出相关文档,如果没有,我就要进入下一个系列学习了。。。。哈哈哈,请举砖关注。。。。。。。其实官方提供的资料,demo已经足够我们使用各种场景,主要还是自己在项目和学习中去领悟,能熟练掌握场景下的使用。
- 博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章,请原谅博主成为一个无耻的文档搬运工!
- 小弟刚迈入博客编写,文中如有不对,欢迎用板砖扶正,希望给你有所帮助。
RabbitMQ十:重要方法简述(参数)的更多相关文章
- RabbitMq Queue一些方法及参数
方法: 1.QueueDeclare 声明队列 public static QueueDeclareOk QueueDeclare(String queue, Boolean durable, Boo ...
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
Android中View的绘制过程 onMeasure方法简述 附有自定义View例子 Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android fr ...
- iOS开发Swift篇—(十)方法
iOS开发Swift篇—(十)方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开头 ( ...
- Java:方法的参数是传值还是传引用
Java中方法的参数总是采用传值的方式. 下列方法欲实现对象的交换,但实际上是不能实现的. public void swap(simpleClass a,simpleClass b){ simpleC ...
- MVC学习系列2--向Action方法传递参数
首先,新建一个web项目,新建一个Home控制器,默认的代码如下: public class HomeController : Controller { // GET: Home public Act ...
- CLR via C# 读书笔记---常量、字段、方法和参数
常量 常量是值从不变化的符号.定义常量符号时,它的值必须能在编译时确定.确定后,编译器将唱两只保存在程序集元数据中.使用const关键字声明常量.由于常量值从不变化,所以常量总是被视为类型定义的一部分 ...
- Atitit 记录方法调用参数上下文arguments
Atitit 记录方法调用参数上下文arguments 1.1. java java8 新的对象Parameter LocalVariableTable 本地变量表 MethodParamete ...
- JavaScript中以一个方法作为参数的写法
前言,我们写js的时候,经常会看到一些方法,比如说: $("#ids").click(function( alert("Click me"); )); ---- ...
- C#中方法的参数的四种类型
C#中方法的参数有四种类型: 1. 值参数类型 (不加任何修饰符,是默认的类型) 2. 引用型参数 (以ref 修饰符声明) 3. 输出型参数 (以out 修 ...
- XMLHTTP中setRequestHeader方法和参数
注意:在FF里面需要将open方法放在setRequestHeader之前 一.为何要用到setRequestHeader 通 常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTT ...
随机推荐
- Parallels Desktop 设置win网络连接
目的: 1 虚拟机中的win系统技能访问外网 2 可以和Mac系统互联 首先来实现1,很简单: 打开控制中心对应系统的设置 选择[硬件]->[网络] 源:设置共享网络 到此就达到1目的了: 现在 ...
- adb client, adb server, adbd原理浅析(附带我的操作过程)【转】
本文转载自:http://blog.csdn.net/stpeace/article/details/24933813 adb是什么? adb就是Android调试桥,很形象啊. 先来看adb原理的逻 ...
- codeforcfes Codeforces Round #287 (Div. 2) B. Amr and Pins
B. Amr and Pins time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- ap和路由器有什么区别 ap和路由器的区别介绍【图文】
现在能够摆脱网线限制能够自由方便上网的WiFi和无线网络也来越流行,很多酒店.饭店.宾馆.办公楼等地方都会提供无线网络.而能够提供无线网络的设备有很多,现在我们介绍的是无线ap和无线路由器.那么,ap ...
- 书写优雅的shell脚本(一)- if语句
使用unix/linux的程序人员几乎都写过shell脚本,但这其中很多人都是为了完成功能而在网上找代码段,这样写出来的shell脚本在功能方面当然是没有什么问题,但是这样的方式不能写出优雅的shel ...
- 「LuoguT36048」 Storm in Lover
Description 平成二十四年(2012年),5月11日,东京,某弓道场. "呐,呐,海未酱,你听说了吗?几天后的那场弓道大会?啊-!"橙发少女兴奋地拿着一张传单一样的纸跑向 ...
- NOIP2007 矩阵取数游戏(区间DP)
传送门 这道题第一眼看上去可能让人以为是贪心……不过贪心并不行,因为每次的操作是有2的幂次方的权值的.这样的话直接每次贪心最小的就目光短浅.所以那我们自然想到了DP. 据说这是一道很正常的区间DP? ...
- npm 基本命令行
npm是随同NodeJS一起安装的包管理工具. 检查版本 npm -v 升级npm npm install npm -g 使用淘宝镜像升级 cnpm install npm -g npm instal ...
- Excel: 使用Countif函数来去掉Excel中重复的数据
如果使用Ruby脚本,uniq函数就能搞定一切.不过我们现在还是讨论怎么用excel的Countif函数吧. 假设Excel中有一列数据:
- unity anim(转)
Unity4的Mecanim动画很早以前就有体验过,迟迟没有加到项目中有两个原因,今天写这篇博客来记录我在做的过程中遇到的一些问题. 1.以前的代码代码量比较多,修改起来动的地方太多了. 2.使用Me ...