赞
踩
RabbitMQ用了也有一两年了,知识点也是工作后零散的掌握,今天小小总结一下
高可用的通俗解释是,能够7*24小时不间断的对外提供服务。由于单机存在单点故障,随时可能发生宕机,所以一般都是通过搭建集群来保证高可用的
RabbitMQ有三种模式,单机模式就不做过多解释了,demo级别的,生产一般不可能使用单机模式,除非MQ只是用来打印日志
小小总结一下,RabbitMQ其实并不是分布式消息队列,大厂使用的分布式消息队列,更多是RocketMQ或者Kafka,可以分布式分片存储,水平扩容性能会有明显提升
关于生产者的confirm机制和消费者的ack机制,我们这里不展开了,毕竟属于比较基础的知识
高可靠也分成三个方面,生产者高可靠、MQ高可靠和消费者高可靠
生产者的高可靠主要是依靠补偿机制来实现的,确保生产者能够将消息发送至MQ,如果发送失败,则需要进行重发
关于延迟队列,可以采用死信队列或者插件机制实现,这里不展开,这里只需要关注生产者发送就好了
RabbitMQ提供了持久化机制,交换器、队列、消息都可以进行持久化,具体的配置也不麻烦,大家自行查阅即可
消费者高可靠,一是保证消息能够被消费者消费(消费者ack机制),二是保证消息重复消费的幂等性
关于消息消费的幂等性
数据库唯一ID、去重表、Redis,基本都是这个思路
乐观锁的方案可以参考这篇 RabbitMQ应用问题消息的可靠性保障(消息补偿机制)和幂等性问题(乐观锁解决方案)思路
关于文章所讲的一些概念,可能还没讲清楚,留着以后复盘的时候再补充吧, 毕竟学习本身就是需要经常回顾才能沉淀下来的一件事情
还是那句话,输出倒逼输入,大家一起学习,共同进步
最后,本人所有文章不做商业用途,如若侵权,还请联系删除~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。