![](https://img-blog.csdnimg.cn/direct/39645135397744c09b66f4e5f13cee2e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
RabbitMQ
文章平均质量分 80
RabbitMQ:消息队列中间件
Jerryean99
奋斗不息,编码不止,大家好,我是来自重庆的Jerryean99,一个坚信技术可以创造未来的Java程序猿!
展开
-
消息队列的消息积压解决办法
1.1 概述其实本质针对的场景,就是说可能你的消费端出了问题,不消费了;或者消费的速度极其慢。接着就坑爹了,就可能出现以下三大问题场景:1、可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?2、或者是这整个就积压了几个小时,你这个时候怎么办?3、或者是你积压的时间太长了,导致比如 RabbitMQ 设置了消息过期时间后就没了怎么办?所以就这事儿,其实线上挺常见的,一出就是大问题。一般常见于,举个例子,消费端每次消费之后要写 mysql,结果 mysql 挂了,消费端停在那儿了,不动原创 2022-03-16 16:20:22 · 7520 阅读 · 8 评论 -
如何保证消息不重复消费【重点】
1.1 消息重复消费其实这是一个常见的面试问题,既然是消费消息,那肯定是要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?关于消息重复消费的问题,其实本质上就是问你使用消息队列如何保证幂等性。1.2 幂等性幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系原创 2022-03-16 15:44:59 · 3459 阅读 · 4 评论 -
RabbitMQ如何保证消息的顺序性【重点】
1.1 保证顺序性的意义消息队列中的若干消息如果是对同一个数据进行操作,这些操作具有前后的关系,必须要按前后的顺序执行,否则就会造成数据异常。举例: 比如通过mysql binlog进行两个数据库的数据同步,由于对数据库的数据操作是具有顺序性的,如果操作顺序搞反,就会造成不可估量的错误。比如数据库对一条数据依次进行了 插入->更新->删除操作,这个顺序必须是这样,如果在同步过程中,消息的顺序变成了删除->插入->更新,那么原本应该被删除的数据,就没有被删除,造成数据的不一致问原创 2022-03-16 15:16:53 · 22678 阅读 · 25 评论 -
如何保证生产中RabbitMQ的高可用,看本文就够了【重点】
1.1 概述本文来探究一下使用消息队列的热点问题,如何保证消息队列的高可用,本文使用的消息队列是RabbitMQ,后续会出其他热门的MQ教程,敬请期待。1.2 RabbitMQ 的高可用性RabbitMQ基于主从模式实现高可用。RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。1.2.1 单机模式单机模式,即单机情况不做集群,就单独运行一个rabbitmq而已就是 Demo 级别的,一般就是你本地启动了玩的,没人生产用单机模式。1.2.2 普通模式普通集群模式,意思就是在原创 2022-03-16 14:42:21 · 4210 阅读 · 8 评论 -
RabbitMQ详解,用心看完这一篇就够了【重点】
1.1 消息中间件消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统——百度百科1.1.1 应用场景1.1.1.1 异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 ;(1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。这有一个问题是,邮件,短信并不是必须的,它只是一个通知,而这种做法让客户端等待没有必要等待的东西。(原创 2022-03-15 16:33:46 · 98516 阅读 · 51 评论