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 ...
随机推荐
- 百度自然语言处理api用法
def words url = "https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?access_token=1111111" param ...
- redis12-----redis 与关系型数据库的对比
书和书签系统 create table book ( bookid int, title ) )engine myisam charset utf8; insert into book values ...
- RabbitMQ 使用
安装步骤略过. 启动 启动很简单,找到安装后的 RabbitMQ 所在目录下的 sbin 目录,可以看到该目录下有6个以 rabbitmq 开头的可执行文件,直接执行 rabbitmq-server ...
- 基于Vuejs的搜索匹配功能
最近一直在看vue,查了很多资料,看了很多文档和博客,大概半知半解了,然后利用所理解的知识写了一个简单的搜索匹配功能. 大概长这个样子: <!DOCTYPE html> <htm ...
- hdu acm 1114 Piggy-Bank 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目意思:给出一个空的猪仔钱ang 的重量E,和一个装满钱的猪仔钱ang 的重量F你,实质上能装 ...
- SocketErrorCode:10022
在编写.net的网络服务器时,我使用了裸socket来实现.在windows上,或者在linux上通过.net core来跑时都没有什么问题,但是通过mono运行调用socket.Bind()时却总是 ...
- table中tr或者td的点击事件
直接把时间添加到table或者tbody上,只有下面的tr或者td才能促发事件,通过e.target可以获得当前点击tr或者td,这样就可以进行查询或者删除操作了 如果是删除,直接e.target.r ...
- Android 业务组件化开发实践
组件化并不是新话题,其实很早很早以前我们开始为项目解耦的时候就讨论过的.但那时候我们说的是功能组件化.比如很多公司都常见的,网络请求模块.登录注册模块单独拿出来,交给一个团队开发,而在用的时候只需要接 ...
- Table View Programming Guide for iOS---(三)----Overview of the Table View API
Overview of the Table View API 表格视图API概述 The table view programming interface includes several UIKit ...
- 连接mysql报错-Can't connect to MySQL server on
1.问题: 在Windows 上远程连接数据库报错-Can't connect to MySQL server on... 但是重启系统后就可以连接: 2.这种原因大致是因为系统缓冲区空间不足或列队已 ...