Java使用RabbitMQ(五)--消息分发策略

原创 2018年04月17日 09:31:42

消息分发策略
RabbitMQ默认的消息分发策略是公平分发(Fair dispatch),把消息轮流发给每个worker者。
这样有个问题:某个worker很忙的 时候,会累积大量的消息,导致异常、内存溢出等问题。
一个解决方案是:设置某一时间只给一个worker者发送一条消息,在没有收到ack消息回应时,不给发第二个。

int prefetchCount = 1;
channel.basicQos(prefetchCount);

当然这种解决方式也有它的问题,就是rabbitMQ可能会累积大量消息,队列很快会满,这就需要添加更多的worker来处理这些消息。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ljz2016/article/details/79969994

RabbitMQ

-
  • 1970年01月01日 08:00

轻松搞定RabbitMQ(二)——工作队列之消息分发机制

上一篇博文中简单介绍了一下RabbitMQ的基础知识,并写了一个经典语言入门程序——HelloWorld。本篇博文中我们将会创建一个工作队列用来在工作者(consumer)间分发耗时任务。同样是翻译的...
  • xiaoxian8023
  • xiaoxian8023
  • 2015-09-24 18:46:29
  • 11250

RabbitMQ学习总结(6)——消息的路由分发机制详解

一、Routing(路由) (using the Java client) 在前面的学习中,构建了一个简单的日志记录系统,能够广播所有的日志给多个接收者,在该部分学习中,将添加一个新的特点,就是可以只...
  • u012562943
  • u012562943
  • 2015-12-23 18:07:56
  • 2307

RabbitMQ三种分布式策略总结

RabbitMQ可以通过三种方法部署分布式系统:集群、联盟(feder和shovel插件。 集群通过连接多个机器组成单个逻辑broker,机器之间通信要借助于Erlang的消息传输。集群中所有节点必...
  • u013040181
  • u013040181
  • 2014-08-16 16:11:58
  • 5926

RabbitMQ消息队列(六):使用主题进行消息分发

在上篇文章RabbitMQ消息队列(五):Routing 消息路由 中,我们实现了一个简单的日志系统。Consumer可以监听不同severity的log。但是,这也是它之所以叫做简单日志系统的原因,...
  • anzhsoft2008
  • anzhsoft2008
  • 2014-02-23 16:29:19
  • 36135

rabbitmq安装包

  • 2018年03月08日 15:31
  • 3.9MB
  • 下载

RabbitMQ消息分发模式----"Publish/Subscribe"发布/订阅模式

介绍 我们都是基于一个队列发送和接受消息。  前面讲的几种,不管是生产者端还是消费者端都必须知道一个指定的QueueName才能发送、获取消息。  而RabbitMQ消息模型的核心思想是生产者不会...
  • a491857321
  • a491857321
  • 2016-01-29 20:03:32
  • 3140

ActiveMQ学习笔记-分发策略

异步发送ActiveMQ默认的发送模式是异步发送,如果我们使用场景是非事务类型或者需要持久化消息,允许少量的消息丢失的话,推荐使用异步发送。同步发送需要增加ack的确认,这样子会增大时延和系统消耗。c...
  • chanrenyuan
  • chanrenyuan
  • 2017-05-16 22:45:51
  • 813
收藏助手
不良信息举报
您举报文章:Java使用RabbitMQ(五)--消息分发策略
举报原因:
原因补充:

(最多只允许输入30个字)