![](https://img-blog.csdnimg.cn/direct/6d2a4fce659941c4a26218be9f190f49.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
RabbitMq系列
文章平均质量分 83
RabbitMq系列
老猫喜欢今日爬山
不积跬步无以至千里
展开
-
RabbitMq 发布确认高级(七)
在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢?特别是在这样比较极端的情况, RabbitMQ 集群不可用的时候,无法投递的消息该如何处理呢:应 用 [xxx] 在 [08-1516:36:04] 发 生 [ 错 误 日 志 异 常 ] , alertId=[xxx]。原创 2024-01-03 15:20:00 · 798 阅读 · 0 评论 -
RabbitMq 延迟队列(六)
延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好的利用RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。原创 2024-01-03 15:02:18 · 809 阅读 · 0 评论 -
RabbitMq 死信队列(五)
先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说, producer 将消息投递到 broker 或者直接到 queue 里了, consumer 从 queue 取出消息进行消费,但某些时候由于特定的。应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中.还有比如说: 用户在商城下单成功并点击去支付后在指定时间未支付时自动失效。启动之后关闭该消费者 模拟其接收不到消息。原创 2024-01-03 14:37:44 · 440 阅读 · 0 评论 -
RabbitMq 交换机(四)
Fanout 这种类型非常简单。正如从名称中猜到的那样,它是将接收到的所有消息广播到它知道的所有队列中。系统中默认有些 exchange 类型上一节中的我们的日志系统将所有消息广播给所有消费者,对此我们想做一些改变,例如我们希望将日志消息写入磁盘的程序仅接收严重错误(errros),而不存储哪些警告(warning)或信息(info)日志消息避免浪费磁盘空间。原创 2024-01-03 14:26:51 · 946 阅读 · 0 评论 -
RabbitMq 发布确认(三)
(从 1 开始),一旦消息被投递到所有匹配的队列之后, broker就会发送一个确认给生产者(包含消息的唯一 ID),这就使得生产者知道消息已经正确到达目的队列了,如果消息和队列是可持久化的,那么确认消息会在将消息写入磁盘之后发出, broker 回传给生产者的确认消息中 delivery-tag 域包含了确认消息的序列号,此外 broker 也可以设置basic.ack 的 multiple 域,表示到这个序列号之前的所有消息都已经得到了处理。当然这种方案仍然是同步的,也一样阻塞消息的发布。原创 2024-01-03 13:46:49 · 806 阅读 · 0 评论 -
RabbitMq 工作队列(二)
工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。原创 2024-01-03 11:31:10 · 773 阅读 · 0 评论 -
RabbitMq 简单队列(一)
在本教程的这一部分中,我们将用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者。我们将介绍 Java API 中的一些细节。在下图中,“ P”是我们的生产者,“ C”是我们的消费者。中间的框是一个队列-RabbitMQ 代表使用者保留的消息缓冲区。原创 2024-01-03 11:07:28 · 370 阅读 · 0 评论 -
RabbitMq集群搭建(单机+普通集群+镜像集群+负载集群+高可用负载集群)
版权声明:本文为CSDN博主「程序猿二鍋頭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_45441466/article/details/119699104。原创 2023-12-29 16:34:28 · 2089 阅读 · 0 评论 -
RabbitMq基本概念以及5中工作队列(一)
Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个 thread 创建单独的 channel 进行通讯, AMQP method 包含了 channel id 帮助客户端和 message broker 识别 channel,所以 channel 之间是完全隔离的。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。原创 2023-12-29 14:52:09 · 840 阅读 · 0 评论