后端
未读
RabbitMQ其他知识
1.幂等性 1.1 概念 用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱
后端
未读
RabbitMQ之确认发布2
1.发布确认高级示例 在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢?特别是在这样比较极端的情况,RabbitMQ 集群不可用的时候,
后端
未读
RabbitMQ之延迟队列
1.延迟队列概念 延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。 2.延迟队列使用场景 1.订单在十分钟之内未支付则自动取消 2.新创建的店铺,如果在十天内都没
后端
未读
RabbitMQ之死信队列
1.死信 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费
后端
未读
RabbitMQ之交换机
1.交换机(Exchanges ) 生产者生产的消息从不会直接发送到队列,只能将消息发送到交换机,消息能路由发送到队列中其实是由 routingKey(bindingkey)绑定 key 指定的,借由交换机来应对更多种对消息处理的情形,常用的交换机类型有如下几种 名称 类型 直接(发布订阅模式) d
后端
未读
RabbitMQ之确认发布1
1.单个确认发布 即发布一次确认一次,由于线程阻塞效率较低,但数据不会丢失 public static void publishMessageIndividually() throws Exception {
try (Channel channel = RabbitMqUtils.
后端
未读
RabbitMQ之Work Queues
1.轮询分发消息 一个消费者线程可能无法处理一个生产者线程所发出的大量数据,我们可以采用多消费者线程+轮询策略 1.1抽取工具类 public class RabbitMqUtils {
static String host = "";
static String User = ""
后端
未读
RabbitMQ的单体部署以及入门案例
一.RabbitMQ安装 1.介绍 2.安装 1.官网地址 https://www.rabbitmq.com/download.html 2.安装文件 //安装erlang环境
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
yum install socat -y
rp