rabbitmq消费者获取消息慢_RabbitMQ:快速生产者和缓慢的消费者

当RabbitMQ消费者处理速度慢于生产者时,可能导致消息队列溢出。解决方法包括增加消费者数量或调整消费者QoS值。多线程消费需谨慎,可能增加开销。另一种策略是先将消息存入缓存,后续再由独立进程处理,减轻数据库压力。
摘要由CSDN通过智能技术生成

我有一个应用程序,它使用rabbitmq作为消息队列,在发送方和接收方这两个组件之间发送/接收消息。发送者以非常快的方式发送消息。接收器接收消息,然后执行一些非常耗时的任务(主要是为非常大的数据量编写数据库)。由于接收者需要很长时间来完成任务,然后在队列中检索下一条消息,发送者将继续快速地填充队列。所以我的问题是:这会导致消息队列溢出吗?

消息使用者如下所示:public void onMessage() throws IOException, InterruptedException {

channel.exchangeDeclare(EXCHANGE_NAME, "fanout");

String queueName = channel.queueDeclare("allDataCase", true, false, false, null).getQueue();

channel.queueBind(queueName, EXCHANGE_NAME, "");

QueueingConsumer consumer = new QueueingConsumer(channel);

channel.basicConsume(queueName, true, consumer);

while (true) {

QueueingConsumer.Delivery delivery = consumer.nextDelivery();

String message = new String(delivery.getBody());

System.out.println(" [x] Received '" + message + "'");

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值