
RabbitMQ
文章平均质量分 76
荷包蛋今天有好好学习吗?
太懒了,简介是空的~~~
展开
-
RabbitMQ-集群搭建、负载均衡
文章目录为何要搭建RabbitMQ集群?集群方案原理单机多实例方式搭建集群集群管理镜像集群配置负载均衡-HAProxy安装HAProxy配置HAProxy代码测试集群为何要搭建RabbitMQ集群?如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。集群方案原理RabbitMQ这款消息队列中间件产品本身是基于Erl原创 2021-09-07 22:48:10 · 2732 阅读 · 1 评论 -
RabbitMQ-消息幂等性的保障:乐观锁机制
文章目录什么是幂等性?消息幂等性保障:乐观锁机制什么是幂等性?幂等性指一次和多次请求某一个资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。在MQ中指,消费多条相同的消息,得到与消费该消息一次相同的结果。消息幂等性保障:乐观锁机制用户付款500后,发送一条扣款500的消息到mq,但是由于网络什么各种原因,Consumer没有消费到消息便让Producer再发一条,此时Q1中还存在着未被消费的和重发的那一条消息,这时Consumer在来正常原创 2021-09-07 16:29:37 · 714 阅读 · 1 评论 -
RabbitMQ-消息可靠性保障:消息补偿机制
文章目录现有需求:确保消息100%发送成功。使用消息补偿机制:1.业务数据入库在发送消息前,先将消息入库2.发送消息发送消息m到消息队列Q1,Consumer监听到Q1的消息m后,消费消息m,并将消息m入库。然后发送确认消息给Q2,回调检查服务监听到Consumer反馈的确认消息后,也将消息写入数据库MDB。这是消息发送成功的正常情况。倘若:发送消息失败,那么Consumer消费不到消息,Consumer的消息入库操作也失败了。这时也不用担心,因为在我们发送消息m后,过了几分钟后也会进行延原创 2021-09-07 16:14:10 · 970 阅读 · 0 评论 -
RabbitMQ-日志与监控、消息追踪
文章目录日志与监控RabbitMQ日志Web管控台监控使用命令rabbitmqctl管理和监控消息追踪消息追踪-Firehose消息追踪-rabbitmq_tracing日志与监控RabbitMQ日志linux系统下:RabbitMQ默认日志存放路径: /var/log/rabbitmq/rabbit@xxx.logxxx为你的主机名日志包含了RabbitMQ的版本号、Erlang的版本号、RabbitMQ服务节点名称、cookie的hash值、RabbitMQ配置文件地址、内存限制、磁盘限制、原创 2021-09-07 15:28:03 · 1391 阅读 · 0 评论 -
RabbitMQ-dlx死信队列
文章目录什么是死信队列?消息成为死信的三种情况:DLX死信队列 的测试小结什么是死信队列?死信队列,英文缩写:DLX 。Dead LetterExchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。消息成为死信的三种情况:1.队列消息长度到达限制;⒉消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;3.原队列存在消息过期设置,消息到达超时时间未被消费;原创 2021-09-07 15:26:27 · 154 阅读 · 0 评论 -
RabbitMQ-ttl+dlx实现延迟队列
文章目录什么是延迟队列?延迟队列的实现测试什么是延迟队列?延迟队列,即消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。若有如下需求:1.下单后,30分钟未支付,取消订单,回滚库存。2.新用户注册成功7天后,发送短信问候。其实现方式:1.定时器2.延迟队列但,在RabbitMQ中没有直接提供延迟队列。不过我们可以使用 TTL + DLX 组合来实现延迟队列延迟队列的实现测试工程结构:spring-rabbitmq-producer.xml中相关配置原创 2021-09-07 15:26:00 · 338 阅读 · 0 评论 -
RabbitMQ-TTL消息存活时间
文章目录TTL是什么?TTL的测试小结TTL是什么?TTL全称Time To Live(存活时间/过期时间) 。当消息到达存活时间后,还没有被消费,会被自动清除。RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间。TTl:消息的存活时间有两种 1.队列统一过期 2.消息单独过期若设置了队列过期时间,也设置了消息过期时间,以时间短的为准。若队列过期后,会将队列中所有消息移除。只有消息在队列顶端时(即将被消费时),才会判断它是否过期(被移除掉),原创 2021-09-07 15:25:24 · 886 阅读 · 0 评论 -
RabbitMQ-消费端限流
文章目录为什么要做消费端限流?消费端限流的测试为什么要做消费端限流?A系统每秒最大能处理1000请求,若这时开展了秒杀活动,请求瞬间增多,全部打到A系统上的话那A系统肯定会崩溃宕机什么的,这对业务正常运转造成了巨大的影响。所以我们把消息存入MQ中,然后每次从MQ中拉取1000个请求,保证A系统能正常运转,业务正常进行。当有一天,A系统要维护了,维护期间会有大量消息堆积在MQ中,维护好了若让MQ中的消息全打入A系统的话,怕不是马上就挂。所以我们需要在消费端限流,来保证系统的稳定性和业务的正常运转。原创 2021-09-07 15:24:55 · 593 阅读 · 0 评论 -
RabbitMQ-Consumer Ack消息的可靠性
文章目录消费端收到消息后的确认方式手动确认方式的测试消息可靠性要点消费端收到消息后的确认方式ack指Acknowledge,确认。表示消费端收到消息后的确认方式。有三种确认方式:自动确认: acknowledge=“none”手动确认: acknowledge=“manual”根据异常情况确认: acknowledge=“auto”其中自动确认是指,当消息一旦被Consumer接收到,则自动确认收到,并将相应message 从 RabbitMQ的消息缓存中移除。但是在实际业务处理中,很可能原创 2021-09-07 15:24:23 · 189 阅读 · 0 评论 -
RabbitMQ-消息的可靠投递
文章目录适用场景两种方式confirm确认模式 的测试return回退模式 的测试其它方式适用场景在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。两种方式RabbitMQ为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退回模式rabbitmq整个消息投递的路径:producer -> rabbitmq broker -> exchange -> queue -> consumer消息从原创 2021-09-07 15:23:47 · 133 阅读 · 0 评论 -
RabbitMQ基础概念及工作模式的简单介绍
文章目录RabbitMQ中的MQ是什么?MQ的优势和劣势优势:1.应用解耦2.异步提速3.削峰填谷劣势:1.系统可用性降低2.系统复杂度提高3.一致性问题使用MQ的满足条件常见的MQRabbitMQ简介发展史JMS的概念RabbitMQ相关概念RabbitMQ的六种工作模式1.简单模式2.Work queues工作队列模式3.Pub/Sub发布订阅模式4.Routing路由模式5.Topics通配符模式总结RabbitMQ中的MQ是什么?MQ全称Message Queue(消息队列),是在消息的传输过程原创 2021-09-06 13:33:52 · 867 阅读 · 2 评论