隐藏页面特效

RabbitMQ相关总结

//connection //channel //broke //exchange:fanout、 dirct、 topic(*:一个单词、#:多个单词)、 header //queue //bind(exchange,queue,routingkey) //一、如何保证消息不丢失 //生产者发布消息时 设置消息持久化(Persistent:true)、设置确认模式(DeliveryMode:2) //声明交换机时设置持久化(durable:true) //声明队列时声明持久化(durable:true) //消费者消费消息时关闭自动应答(autoAck:false) //二、实现延迟队列 //声明队列时设置队列消息过期时间TTL(x-message-ttl)或者发布消息时设置消息过期时间TTL(Expiration) //配置死信队列 //当消息没有消费者过期时会进入死信队列,再消费死信队列中的消息可实现延迟队列的效果 //三、进入死信队列条件 //配置了死信队列 //消息被拒、过期、超过队列长度 //四、消费者2种消费模式 //Push(BasicConsume)、Pull(BasicGet) //五、如何保证消息不重复消费
前提:生产者产生消息时带一个唯一ID
方案一、将唯一ID设置为数据库表的唯一索引,通过数据库唯一索引保证消费端幂等性(适用于新增场景)
方案二、使用Redis+TTL+消费状态(过期时间)
方案三、使用数据库+补偿机制(数据库存唯一ID、消费状态、消费次数),定时任务自动处理消费多少次的任务

-->(特殊情况,比如消费完成没有更新消费状态)消费次数>N次,则人工介入做补偿
-->插入失败-->(已消费直接返回成功、消费中则拒收进入延迟队列)
插入消费记录(消费中、消费次数)-->插入成功-->执行业务-->执行成功-->修改消费记录状态为成功 -->执行失败-->删除消费记录-->重新投递
//六、开启手动应答模式后 //BasicAck()、BasicNAck、BasicReject

 

 


__EOF__

本文作者DaiWK
本文链接https://www.cnblogs.com/daiwk/p/18234055.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   DaiWK  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示