
RabbitMQ
文章平均质量分 58
笙箫123
梦想还是要有的,万一实现了呢
展开
-
MQ相关面试题
你们项目中哪些地方有使用到 MQ1. 使用 mq 异步发送优惠券;2. 使用 mq 异步发送短信;3. 使用 mq 异步扣库存 总之将执行比较耗时的代码操作,交给 mq 异步实现接口。为什么需要使用 MQ1.异步处理(多线程和 MQ)2.实现解耦3.流量削峰(MQ 可以实现抗高并发)MQ 与多线程实现异步的区别1.多线程方式实现异步可能会消耗到我们的 cpu 资源,可能会影响到我们业务线程执行 会发生 cpu 竞争的问题;2.MQ 方式实现异步是完全解耦,适合于大型互原创 2021-03-26 15:48:57 · 618 阅读 · 0 评论 -
MQ造成消费者幂等性问题的原因以及解决方案
原因:消费者没有在规定时间内或者抛出异常的情况下,消费结果没有技术反馈给MQ的情况下,MQ默认服务端消费者消费失败,重试发送消费消息,MQ在重试的过程中,会造成重复消费的问题。解决方案:生产者在消息头设置全局的业务唯一ID,比如订单号,消费者根据全局ID判断此数据消费过了没有,消费过了就不在消费了...原创 2020-04-17 12:41:51 · 865 阅读 · 0 评论 -
消息中间件在高并发情况下,如何保证消息不丢失
1.如果消费者没有启动,消息会丢失吗?不会。2.消息中间件如果宕机了,消息会丢失吗?不会,默认持久化。3.如果消息中间件存放的消息,满的情况下,达到消息队列容量阈值,消息中间件会有拒绝策略,不在生产消息。4.消息中间件的确认机制,确认生产到消息中间件中。5.消费者如果消费消息失败的情况下,手动实现ack。...原创 2020-04-14 19:37:56 · 750 阅读 · 0 评论 -
ActiveMQ、RabbitMQ、kafka三者的区别
RabbitMQ: RabbitMQ 是使用 Erlang 编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP, 也正因如此,它非常重量级,更适合于企业级的开发。同时实现了 Broker 构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。 ActiveMQ: ActiveMQ 是 Apache 下的...原创 2019-10-07 23:03:35 · 1537 阅读 · 0 评论 -
RabbitMQ的介绍以及工作原理
1 介绍 1.1 RabbitMQ MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/ 开...原创 2019-10-03 23:04:43 · 807 阅读 · 0 评论 -
Spring boot整合RibbitMQ
1 、搭建SpringBoot环境 我们选择基于Spring-Rabbit去操作RabbitMQ https://github.com/spring-projects/spring-amqp 使用spring-boot-starter-amqp会自动添加spring-rabbit依赖,如下: <dependency><groupId>org.sprin...原创 2019-10-03 22:59:30 · 618 阅读 · 0 评论 -
分布式事务解决方案之消息队列
本方案是将分布式事务拆分成多个本地事务来完成,并且由消息队列异步协调完成,如下图: 下边以下单减少库存为例来说明: 1、订单服务和库存服务完成检查和预留资源。 2、订单服务在本地事务中完成添加订单表记录和添加“减少库存任务消息”。 3、由定时任务根据消息表的记录发送给MQ通知库存服务执行减库存操作。 4、库存服务执行减少库存,并且记录执行消息状态(为避免重复执行消息,在执行...原创 2019-09-26 19:06:08 · 603 阅读 · 0 评论 -
RabbitMQ的几种工作模式
1、Work queues(工作队列模式)work queues与普通队列程序相比,多了一个消费端,两个消费端共同消费同一个队列中的消息。 应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。 使用: 1、使用入门程序,启动多个消费者。 2、生产者发送多个消息。 结果: 1、一条消息只会被一个消费者接收; 2、rabbit采用轮询的方式将消息是...原创 2019-09-25 21:34:04 · 654 阅读 · 0 评论 -
RabbitMQ的安装
RabbitMQ的下载地址:http://www.rabbitmq.com/download.htmlRabbitMQ是基于erlang语言写的,所以我们先下载erlang并配置环境变量1)下载erlang 地址如下: http://erlang.org/download/otp_win64_20.3.exe erlang安装完成需要配置erlang环境变量: 环境变量...原创 2019-09-24 22:12:07 · 376 阅读 · 0 评论