消息队列RabbitMQ学习笔记
文章平均质量分 94
程哥哥吖
路虽远,行则将至;事虽难,做则必成。
展开
-
消息队列RabbitMQ学习笔记(五)高级特性
在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢?原创 2022-12-26 22:15:00 · 883 阅读 · 0 评论 -
雪花算法和uuid比较
SnowFlake算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上是保持自增的。 由于在Java中64bit的整数是long类型,所以在Java中SnowFlake算法生成的id就是long来存储的。原创 2022-12-25 14:21:47 · 10780 阅读 · 1 评论 -
消息队列RabbitMQ学习笔记(四)死信队列和延迟队列
延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。1.订单在十分钟之内未支付则自动取消2.新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒。3.用户注册成功后,如果三天内没有登陆则进行短信提醒。4.用户发起退款,如果三天内没有得到处理则通知相关运营人员。5.预定会议后,需要在预定的时间点前十分钟通知各个与会人员参加会议。原创 2022-12-24 09:26:02 · 963 阅读 · 0 评论 -
消息队列RabbitMQ学习笔记(三)发布确认与交换机
Fanout 这种类型非常简单。正如从名称中猜到的那样,它是将接收到的所有消息广播到它知道的所有队列中。系统中默认有些exchange 类型上一节中的我们的日志系统将所有消息广播给所有消费者,对此我们想做一些改变,例如我们希 望将日志消息写入磁盘的程序仅接收严重错误(errros),而不存储哪些警告(warning)或信息(info)日志 消息避免浪费磁盘空间。原创 2022-12-22 17:09:27 · 237 阅读 · 0 评论 -
消息队列RabbitMQ学习笔记(二)HelloWorld及消息应答
一旦数量达到配置的数量, RabbitMQ 将停止在通道上传递更多消息,除非至少有一个未处理的消息被确认,例如,假设在通道上有未确认的消息 5、6、7,8,并且通道的预取计数设置为 4,此时RabbitMQ 将不会在该通道上再传递任何消息,除非至少有一个未应答的消息被 ack。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。,而不得不等待它完成。,当然这样有可能使得消费者这边由于接收太多还来不及处理的消息,导致这些消息的积压,最终使 得内存耗尽,最终这些消费者线程被操作系统杀死,原创 2022-12-20 23:30:44 · 125 阅读 · 0 评论 -
RabbitMQ学习笔记(一)中间件及消息队列介绍
MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不 用依赖其他服务。Broker接收和分发消息的应用,RabbitMQ Server 就是 Message Broker。原创 2022-12-19 22:18:05 · 176 阅读 · 0 评论