摘要:
[](https://www.cnblogs.com/xhznl/p/13353095.html) ## Dockerfile 右键项目→添加Docker支持,目标OS选择Linux![1.gif](https://cdn.nlark.com/yuque/0/2022/gif/2130693/165 阅读全文
摘要:
Github仓库地址: https://github.com/imtudou/imtudou.microservices/tree/master/net/samples/rabbitmq 什么是消息中间件 MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队 阅读全文
摘要:
Producer:生产者 Consumer:消费者 RabbitMQ:中间的框是一个队列-RabbitMQ 代表使用者保留的消息缓冲区 依赖 <PackageReference Include="RabbitMQ.Client" Version="6.4.0" /> 生产者代码 using Rabb 阅读全文
摘要:
工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。 轮询分发消息 封装获取Channel代码 usin 阅读全文
摘要:
生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消 息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会 发送一个确认给生产者(包含消息的唯一 ID),这就使得生产者知道消息已经正确到达目的队列了, 阅读全文
摘要:
RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中。相反,生产者只能将消息发送到交换机(exchange),交换机工作的内容非常简单,一方面它接收来自生产者的消息,另一方面将它们推入队列。交换机必须确切知道 阅读全文
摘要:
概念 死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变 阅读全文
摘要:
概念 延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列 死信队列的一种,设置死信队列 TTL即为延迟队列 场景 订单在十分钟之内未支付则自动取消 新创建的店铺,如果 阅读全文
摘要:
在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。如何才能进行 RabbitMQ 的消息可靠投递呢? 特别是在这样比较极端的情况,RabbitMQ 集群不可用的时候,无法投递的消息该如何处理呢? 消息回退( 阅读全文
摘要:
幂等性 MQ消费者的幂等性的解决一般使用全局ID或者写个唯一标识比如时间戳或者UUID或者订单消费者消费MQ中的消息也可利用MQ的该id来判断,或者可按自己的规则生成一个全局唯一id,每次消费消息时用该id先判断该消息是否已消费过 在海量订单生成的业务高峰期,生产端有可能就会重复发生了消息,这时候消 阅读全文