![](https://img-blog.csdnimg.cn/20190916204734321.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
RabbitMQ
文章平均质量分 88
RabbitMQ消息中间件
每天都要进步一点点
工作日常技术学习、积累、总结
展开
-
RabbitMQ常用交换机模式总结
一、简介RabbitMQ中的交换机有Direct Exchange(直连交换机)、Topic Exchange(通配符交换机)、Fanout Exchange(广播式交换机)、Headers Exchange(Headers交换机)四种,常用的就前三种,本文将对前三种做一个简单的总结,加深对MQ中交换机机制的理解。二、Fanout Exchange(广播式交换机)【a】模型图:这种模式...原创 2019-06-25 21:47:46 · 5385 阅读 · 0 评论 -
RabbitMQ消息幂等性之全局唯一ID
一、简介消息幂等性,其实就是保证同一个消息不被消费者重复消费两次。当消费者消费完消息之后,通常会发送一个ack应答确认信息给生产者,但是这中间有可能因为网络中断等原因,导致生产者未能收到确认消息,由此这条消息将会被 重复发送给其他消费者进行消费,实际上这条消息已经被消费过了,这就是重复消费的问题。如何避免重复消费的问题?消费者端实现幂等性,意味着我们的消息永远不会消费多次,即使我们收到...原创 2019-07-21 20:36:20 · 12703 阅读 · 8 评论 -
RabbitMQ死信队列应用场景之模拟未支付订单自动取消
一、简介在前面的博客中已经介绍了死信队列的使用方法,具体可以参考https://blog.csdn.net/Weixiaohuai/article/details/94760975这篇文章。 场景介绍:我们都经常在淘宝上买东西,当我们提交订单后,如果某个时间段之内我们没有支付,淘宝肯定不会帮我们一直保留那个订单,如果超过半个小时我们未支付的话,淘宝会自动帮我们取消订单。在没有用R...原创 2019-07-25 16:18:01 · 4997 阅读 · 7 评论 -
RabbitMQ提升消息传输可靠性方法总结
一、简介在RabbitMQ消息传输过程中,由于网络、服务器本身等问题,有时候会发生消息丢失的现象,在生产环境中,我们应该尽可能保证消息不会丢失,当然不是说百分百保证。下面列举一些发生消息丢失的场景:【a】如果在声明交换机、队列、发送消息的时候没有指定消息持久化的话,那么在RabbitMQ服务器重启的情况下,所有未持久化的交换机、队列、消息都将会丢失; 【b】如果生产者发送完消息之后,如果...原创 2019-07-20 22:35:43 · 836 阅读 · 0 评论 -
RabbitMQ消息确认机制之Confirm模式总结
一、简介在RabbitMQ中,消息确认主要有生产者发送确认和消费者接收确认:生产者发送确认:指生产者发送消息后到RabbitMQ服务器,如果RabbitMQ服务器收到消息,则会给我们生产者一个应答,用于告诉生产者该条消息已经成功到达RabbitMQ服务器中。消费者接收确认:用于确认消费者是否成功消费了该条消息。消息确认的实现方式主要有两种,一种是通过事务的方式(channel.tx...原创 2019-07-07 11:25:31 · 11001 阅读 · 6 评论 -
RabbitMQ消息持久化总结
一、简介在RabbitMQ中,如果遇到RabbitMQ服务停止或者挂掉,那么我们的消息将会出现丢失的情况,为了在RabbitMQ服务重启的情况下,不丢失消息,我们可以将Exchange(交换机)、Queue(队列)与Message(消息)都设置为可持久化的(durable)。这样的话,能够保证绝大部分的消息不会被丢失,但是还有有一些小概率会发生消息丢失的情况。下面通过一个简单的示例总结在Rab...原创 2019-07-06 09:17:06 · 8844 阅读 · 0 评论 -
RabbitMQ死信队列和备份交换器总结
一、简介死信交换机(Dead-Letter-Exchange):当消息在一个队列中由于过期、被拒绝等原因变成死信 (dead message) 之后,它能被重新被发送到另一个交换器中,这个交换器就是死信交换机,绑定死信交换机的队列就称之为死信队列。判断一个消息是否是死信消息(Dead Message)的依据: a. 消息被拒绝(Basic.Reject或Basic.Nack)并且设置 ...原创 2019-07-05 21:28:59 · 1459 阅读 · 0 评论 -
RabbitMQ消费者流量控制策略总结
一、简介在实际项目中使用RabbitMQ的时候,由于消费者(接收消息的一端)自身处理消息的效率并不高,如果说这时候生产者还是不断地在生产消息,一直推送消息到消费者,那么很容易引起消费者的宕机。rabbitmq提供了一个限流机制,用于限制一次性推送到消费者客户端的消息数量,让消费者都处理完了消息之后,生产者再推送新的消息过来。二、限流的原因出于以下两个方面,所以需要对消费者进行一些限流策...原创 2019-07-10 21:20:39 · 5648 阅读 · 1 评论 -
RabbitMQ五种工作模式学习总结
一、简介最近,在看一些消息中间件的内容,之前都没有好好学习一下消息中间件。本文将对RabbitMQ中五种常用的工作模式做一个简单的介绍和总结。RabbitMQ常用的工作模式有:简单队列模式、工作队列模式、发布订阅模式、路由模式、主题模式。本文参照RabbitMQ官网示例总结,详细可以到官网查看:https://www.rabbitmq.com/getstarted.html。二、简单队列模...原创 2019-06-24 21:19:52 · 2946 阅读 · 0 评论 -
RabbitMQ消息可靠性传输示例
一、简介生产端的可靠性投递:保障消息的成功发出; 保障MQ节点的成功接收; 发送端收到MQ节点(Broker) 确认应答; 完善的消息补偿机制;在实际项目中某些场景下,必须保证消息不会出现丢失情况,这时候就需要我们对消息可靠性传输解决方法有所认识,才能在各种特殊情况下不会出现消息丢失、消息多发现象等。生产者可靠性传输有两种方案:消息落库,对消息状态进行打标 消息的延迟投递,做...原创 2019-07-28 21:42:20 · 968 阅读 · 2 评论