主要方法

前言

经过前面的学习,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十:重要方法简述(参数)的更多相关文章

  1. RabbitMq Queue一些方法及参数

    方法: 1.QueueDeclare 声明队列 public static QueueDeclareOk QueueDeclare(String queue, Boolean durable, Boo ...

  2. Android中View的绘制过程 onMeasure方法简述 附有自定义View例子

    Android中View的绘制过程 onMeasure方法简述 附有自定义View例子 Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android fr ...

  3. iOS开发Swift篇—(十)方法

    iOS开发Swift篇—(十)方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开头 ( ...

  4. Java:方法的参数是传值还是传引用

    Java中方法的参数总是采用传值的方式. 下列方法欲实现对象的交换,但实际上是不能实现的. public void swap(simpleClass a,simpleClass b){ simpleC ...

  5. MVC学习系列2--向Action方法传递参数

    首先,新建一个web项目,新建一个Home控制器,默认的代码如下: public class HomeController : Controller { // GET: Home public Act ...

  6. CLR via C# 读书笔记---常量、字段、方法和参数

    常量 常量是值从不变化的符号.定义常量符号时,它的值必须能在编译时确定.确定后,编译器将唱两只保存在程序集元数据中.使用const关键字声明常量.由于常量值从不变化,所以常量总是被视为类型定义的一部分 ...

  7. Atitit  记录方法调用参数上下文arguments

    Atitit  记录方法调用参数上下文arguments 1.1. java  java8  新的对象Parameter LocalVariableTable 本地变量表 MethodParamete ...

  8. JavaScript中以一个方法作为参数的写法

    前言,我们写js的时候,经常会看到一些方法,比如说: $("#ids").click(function( alert("Click me"); )); ---- ...

  9. C#中方法的参数的四种类型

    C#中方法的参数有四种类型:       1. 值参数类型  (不加任何修饰符,是默认的类型)       2. 引用型参数  (以ref 修饰符声明)       3. 输出型参数  (以out 修 ...

  10. XMLHTTP中setRequestHeader方法和参数

    注意:在FF里面需要将open方法放在setRequestHeader之前 一.为何要用到setRequestHeader 通 常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTT ...

随机推荐

  1. 关于在PHP中当一个请求未完成时,再发起另一个请求被阻塞的问题

    最近做项目的时候遇到个问题,就是做阿里云oss大文件上传进度条显示,因为要实时查询上传分片进度,所以在上传的同时必须要再发起查询的请求,但是一直都是所有分片上传完成后查询的请求才执行,刚开始以为是阿里 ...

  2. java 相关博客

    Intellij Idea 创建Web项目入门(一) SpringMVC 和 MyBatis 学习笔记,搭配示例,主要讲解一些基础的概念.用法和配置 包含框架有:SpringMVC.MyBaits.A ...

  3. table 中的thead tbody

    通过thead 下的tr 设置样式以及 tbody 下的 tr 设置样式 避免冲突 <table> <thead> <tr> <td> </td& ...

  4. UISegmentedControl方法与属性的总结

    SegmentedControl又被称作分段控制器,是IOS开发中经常用到的一个UI控件. 初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 - (instancetype)in ...

  5. sql server中like无法匹配下划线问题解决方案

    在sql server的like中下划线类似于通配符%,所以无法使用like '%_%'来匹配下划线,可以通过以下两种办法实现匹配下划线 1.使用转义字符escape like '%\_%' esca ...

  6. CentOS7 安装和配置Tomcat

    1.官网下载Tomcat的压缩包 https://tomcat.apache.org/download-70.cgi 2.使用Xftp5把下载的压缩包上传到 /usr/soft (soft文件夹自己新 ...

  7. codeforces 440C. One-Based Arithmetic 解题报告

    题目链接:http://codeforces.com/problemset/problem/440/C 题目意思:给出一个数你,问需要用到的1来组成这个数的最少数量是多少. 我一开始对每个数只从 “+ ...

  8. WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中——浏览器里运行其他语言的程序?

    Mozilla.谷歌.微软和苹果已经决定开发一种面向Web的二进制格式.该格式名为WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中. 几年前,我们在Inf ...

  9. Go语言的管道Channel用法

    本文实例讲述了Go语言的管道Channel用法.分享给大家供大家参考.具体分析如下: channel 是有类型的管道,可以用 channel 操作符 <- 对其发送或者接收值. ch <- ...

  10. C#面向对象之数据库(理论、插入、修改、删除、查询)

    1.数据库的作用:不仅仅是存储,更重要的是将数据进行存储以后怎么样才能方便快捷的查询修改 2.数据库的特点:海量存储.查找速度快.并发性问题控制.安全性.数据完整性(保存在数据库中的数据是正确的.真是 ...