消息队列
文章平均质量分 87
消息队列
pmc0_0
想做一个优秀的Java后端开发工程师
展开
-
RabbitMQ幂等性、优先级、惰性
但是,商家对于我们来说,肯定是要分大客户和小客户的对吧,比如像苹果,小米这样大商家一年起码能给我们创造很大的利润,所以理应当然,他们的订单必须得到优先处理,而曾经我们的后端系统是使用 redis 来存放的定时轮询,大家都知道 redis 只能用 List 做一个简简单单的消息队列,并不能实现一个优先级的场景,所以订单量大了后采用 RabbitMQ 进行改造和优化,如果发现是大客户的订单给一个相对比较高的优先级, 否则就是默认优先级。即使是持久化的消息,在被写入磁盘的同时也会在内存中驻留一份备份。...原创 2022-08-09 21:10:30 · 87 阅读 · 0 评论 -
RabbitMQ发布确认高级
在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢?...原创 2022-08-09 09:34:38 · 101 阅读 · 0 评论 -
RabbitMQ的死信队列和延迟队列
死信就是无法被消费的消息,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,死信队列就是处理死信的。应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中.还有比如说: 用户在商城下单成功并点击去支付后在指定时间未支付时自动失效原创 2022-08-07 21:14:49 · 869 阅读 · 0 评论 -
RabbitMQ核心模式
它是将接收到的所有消息广播到它知道的所有队列中为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成:第一个程序将发出日志消 息,第二个程序是消费者。其中我们会启动两个消费者,其中一个消费者接收到消息后把日志存储在磁盘,另外一个消费者接收到消息后把消息打印在屏幕上(一个消息被两个消费者同时处理)消费者创建一个随机队列和声明一个Fanout交换机,队列绑定Fanout类型交换机,最后消费监听生产者声明一个Fanout交换机,往交换机发送信息/**...原创 2022-08-07 09:52:45 · 396 阅读 · 0 评论 -
MQ的概念
使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好。MQ(message queue)本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。A 调用 B 服务后,只需要监听 B 处理完成的消息,当 B 处理完成后,会发送一条消息给 MQ,MQ 会将此。...原创 2022-08-05 21:02:58 · 141 阅读 · 0 评论 -
RabbitMQ下载安装
文章目录一、下载安装erlang环境和rabbitmq下载下载相关环境安装包并上传安装文件添加开机启动 RabbitMQ 服务启动服务查看服务状态一、下载安装找不到包可以直接去github上下载相关的版本官网下载链接依赖语言环境下载链接erlang环境和rabbitmq下载# 查看自己linux的信息uname -a# el7Linux iZwz9a2saegn7cjsd3fovmZ 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:0原创 2021-07-27 15:07:23 · 170 阅读 · 0 评论