rabbitmq-BasicQos
2015-11-29 18:01
260 查看
转自:https://www.geek-share.com/detail/2560062920.html
QoS = quality-of-service, 顾名思义,服务的质量。通常我们设计系统的时候不能完全排除故障或保证说没有故障,而应该设计有完善的异常处理机制。在出现错误的时候知道在哪里出现什么样子的错误,原因是什么,怎么去恢复或者处理才是真正应该去做的。在接收消息出现故障的时候我们可以通过RabbitMQ重发机制来处理。重发就有重发次数的限制,有些时候你不可能不限次数的重发,这取决于消息的大小,重要程度和处理方式。
甚至QoS是在接收端设置的。发送端没有任何变化,接收端的代码也比较简单,只需要加如下代码:
channel.BasicQos(0, 1, false);
代码第一个参数是可接收消息的大小的,但是似乎在客户端2.8.6版本中它必须为0,即使:不受限制。如果不输0,程序会在运行到这一行的时候报错,说还没有实现不为0的情况。第二个参数是处理消息最大的数量。举个例子,如果输入1,那如果接收一个消息,但是没有应答,则客户端不会收到下一个消息,消息只会在队列中阻塞。如果输入3,那么可以最多有3个消息不应答,如果到达了3个,则发送端发给这个接收方得消息只会在队列中,而接收方不会有接收到消息的事件产生。总结说,就是在下一次发送应答消息前,客户端可以收到的消息最大数量。第三个参数则设置了是不是针对整个Connection的,因为一个Connection可以有多个Channel,如果是false则说明只是针对于这个Channel的。
这种数量的设置,也为我们在多个客户端监控同一个queue的这种负载均衡环境下提供了更多的选择。
相关文章推荐
- RabbitMQ(六)流量控制 -- basic.qos,prefetch_count
- rabbitmq qos prefetch count的设置与作用
- RabbitMQ的Qos
- RabbitMQ channel.basicQos(prefetchCount )
- RabbitMQ---5、qos内存溢出+prefetch消息堵塞问题
- RabbitMq qos prefetch 消息堵塞问题
- rabbitmq method之basic.consume
- Linux Basic Approach (My Notes)
- PAT (Basic Level) Practise (中文)1028. 人口普查(20)C语言
- 从 Visual Basic 6.0 到 Visual Basic.NET 的转换(5)
- RabbitMQ配置文件
- 在docker环境部署RabbitMQ并使用
- WCF分布式安全开发实践(2):传输安全模式之基本身份验证(Windows账户密码):Transport_Basic_WSHttpBinding
- Basic
- CentOS 7 下 RabbitMQ 集群搭建
- H.264视频编码传输的QoS特性分析(一)
- Basic Internetworking
- spring整合rabbitmq
- ESBasic 可复用的.NET类库(06) -- 循环任务切换器 CircleTaskSwitcher