博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rabbitMq实战使用
阅读量:5172 次
发布时间:2019-06-13

本文共 1598 字,大约阅读时间需要 5 分钟。

只做下工作记录,比较重要的几个属性:

concurrency:一个生产者可以同时由多少个消费者消费,这个一般根据你的机器性能来进行配置

prefetch:允许为每个consumer指定最大的unacked messages数目。要是对实时性要求很高的话,prefetch应该设置成1,concurrency的值调高点

 

队列中Ready状态和Unacknowledged状态的消息数,分别指的是等待投递给消费者的消息数和已经投递给消费者但是未收到ack信号的消息数。

 

注意配置超时重连机制,防止死机

spring.rabbitmq.listener.simple.retry.max-attempts=5spring.rabbitmq.listener.simple.retry.enabled=truespring.rabbitmq.listener.simple.retry.initial-interval=5000spring.rabbitmq.listener.simple.default-requeue-rejected=falsespring.rabbitmq.listener.simple.prefetch=1

Springboot中消费简单实现

@RabbitListener(concurrency = "12",bindings = {@QueueBinding(value = @Queue(value = YOUR_QUEUE), exchange = @Exchange(value = YOUR_EXCHANGE,type = "fanout"))})    public void process(Message message, com.rabbitmq.client.Channel channel) {        Long deliveryTag = null;        String data = null;        try {            deliveryTag = message.getMessageProperties().getDeliveryTag();            data = new String(message.getBody(), "UTF-8");            //业务处理        } catch (Exception e) {            logger.warn("=====消息处理异常");            logger.warn("MQ异常 {} , {} , {}" , e.getMessage(),e.getCause(),data);        }finally {            try {                channel.basicAck(deliveryTag, false); // 确认消息成功消费            } catch (IOException e) {                logger.warn("======应答出错,请检查");            }            logger.warn("======消息结束");        }    }

 

 特别要注意的是:如果不是用springboot注解形式连接,很多时候会因为配置的问题导致access refused(queue 或 exchange),这个时候一定要注意参数是否使用正确,比如php的

另外如果交换机和队列不允许客户进行声明操作的,要注意passive等于true

 

 

 转载请注明博客出处:

 

转载于:https://www.cnblogs.com/cjh-notes/p/10888956.html

你可能感兴趣的文章
第四次团队作业--选题
查看>>
记录专用
查看>>
一句实现jquery导航栏
查看>>
场景分析:用户登录界面场景分析
查看>>
条形码生成包 BarCodeToHTML.cs(以颜色为背景的完整版)(下载的完整版)
查看>>
数据库事务的四大特性以及事务的隔离级别
查看>>
电脑屏幕保护眼睛
查看>>
有用的东西
查看>>
如何开启VMware串口
查看>>
数据库
查看>>
常见Struts、Hibernate、Spring、J2EE、ibatis、Oracle等开发框架架构图及其简介
查看>>
Java为何大行其道
查看>>
CFileDialog的使用方法简单介绍
查看>>
send,recv,sendto,recvfrom
查看>>
C#开发问题汇总
查看>>
Kettle
查看>>
[复习]Python基础回顾
查看>>
LNMP
查看>>
java 读写锁
查看>>
_itoa_s替换 itoa
查看>>