rabbitMQ注意点

1、轮询分发(消息接受自动确认)和公平分发(消息接受手动确认),手动不确认的话消息队列中消息不会消失。
2、消息队列持久话设置,队列会存盘,mq服务器宕机后队列不会消失。
Durability设置为durable,但是里边的消息会消失
3、rabbitmq设置ttl过期时间主要有两种,在BasicProperties中设置expiration还有一种是
args2.put(“x-message-ttl”,5000);
channel.queueDeclare(“ttl.queue”, true, false, false, args2);
前者优先级高于后者。
4、为了保证消息可靠性(可以用消息可靠性做分布式事务):
一:消息制造者到交换机之间可以设置ack确认机制,其间还可以创建一张冗余表来记录消息记录,如若未发送成功可以设置定时器重新发送。
二:交换机到消费者也是设置手动ack,这里需要注意如果消费者出现异常,消息会一直发送导致mq服务器宕机,解决方案主要设置系统重发次数,或者trycatch返回ack并且把此消息添加到死信队列中或者做些其他补救操作。

注意:消费者这边还需要考虑幂等性(重复消费),出现情况是生产者那边由于网络等其他问题导致定时器重复发送相同消息,解决方案主要可以采用设置不重复主键或者redis分布式锁等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值