
MQ
文章平均质量分 89
Java糖糖
这个作者很懒,什么都没留下…
展开
-
消息队列与快递柜之间的奇妙关系
提到消息队列可能一些朋友经常听别人说起一些名词,比如:服务程序解耦,处理流量削峰,通过异步处理提升用户体验,缓冲批处理提高处理性能。笔者擅于白话解说,所以我就不用专业的术语去解释专业的问题了。我一直觉得消息队列的功能和快递柜的功能非常相似,怎么个相似法呢?让我来详细给你说说。一、白话消息队列我们来将快递柜与消息队列做一个对比消息队列比作快递柜:有很多厂家生产快递柜,如:丰巢(apache kafka),速递易(alibaba RocketMQ),近邻宝(ActiveMQ)等等,反正常用的就这几个转载 2022-04-28 15:03:11 · 150 阅读 · 0 评论 -
两万字、三十图、二十三问,学会RocketMQ
基础1.为什么要使用消息队列呢?消息队列主要有三大用途,我们拿一个电商系统的下单举例: 解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据……引入消息队列之后,可以把订单完成的消息丢进队列里,下游服务自己去调用就行了,这样就完成了订单服务和其它服务的解耦合。 异步:订单支付之后,我们要扣减库存、增加积分、发送消息等等,这样一来这个链路就长了,链路一长,响应时间就变长了。引入消息队列,除了更新订单状态,其它的都可以异步去做,这样一来就来转载 2022-04-09 20:14:21 · 196 阅读 · 0 评论 -
设计模式学习笔记:观察者模式及应用场景
观察者模式(Observer Design Pattern),也叫做发布订阅模式(Publish-Subscribe Design Pattern)、模型-视图(Model-View)模式、源-监听器(Source-Listener)模式、从属者(Dependents)模式。指在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。比如说Redis 中的基于频道的发布订阅就是观察者模式的应用:一、观察者模式的介绍观察者模式是一种对象行为型模式,下面就来看原创 2022-04-09 14:14:07 · 698 阅读 · 0 评论 -
腻害,高人都是这样玩SpringBoot整合RabbitMQ
一、认识 RabbitMQRabbitMQ 简介以 AMQP 协议:(1)RabbitMQ 是开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ 底层是用了 Erlang 语言来编写的,并且 RabbitMQ 是基于 AMQP 协议的.(2)RabbitMQ 不仅仅可以使用 java 客户端进行编写,且可以使用其他的语言(python,php等…),它提供了丰富的APIRabbitMQ 的优点:(1)开源,性能优秀,稳定性保障(2)与 Spr原创 2022-04-01 14:09:02 · 266 阅读 · 0 评论 -
RabbitMQ 如何保证全链路数据100%不丢失?
- 前言 -我们都知道,消息从生产端到消费端消费要经过3个步骤:生产端发送消息到RabbitMQ; RabbitMQ发送消息到消费端; 消费端消费这条消息;这3个步骤中的每一步都有可能导致消息丢失,消息丢失不可怕,可怕的是丢失了我们还不知道,所以要有一些措施来保证系统的可靠性。这里的可靠并不是一定就100%不丢失了,磁盘损坏,机房爆炸等等都能导致数据丢失,当然这种都是极小概率发生,能做到99.999999%消息不丢失,就是可靠的了。下面来具体分析一下问题以及解决方案。-原创 2022-03-24 15:18:25 · 191 阅读 · 0 评论 -
面试官:MQ怎么才能按顺序消费?我:不太熟悉诶
我:这里不太熟悉诶。让我想一下:假设A和B通过消息队列通信,A发了2条消息m1和m2,这两条消息有依赖关系,必须先消费m1再消费m2。结果m2先到达,m1后到达。那么B可能先接收到m2,后接收到m1,这个时候应该怎么办?首先,B接收到消息的顺序跟A发出的顺序以及队列中的顺序没有关系。消息到达队列的先后顺序没法保证,队列将消息投递出去以后接收消息的顺序也没法保证。所以,消费者B必须保证业务的正确性,无论生产者怎么发消息,队列怎么投递消息,消费者都必须意识到:接收到的消息是无序的,必须做好处理。其次,消..原创 2022-03-23 16:52:56 · 9564 阅读 · 6 评论 -
面试官:用过哪些MQ,它们之间有啥区别呢?不太熟悉诶
又到一年跳槽的高峰期啦,各位小伙伴有没有跳槽涨工资的打算呢。既然要准备找工作面试了,java八股文可要好好复习一下了。这篇文章汇总一下所有与MQ相关的面试问题及相关知识点,拿去应付面试足够啦。面试官也未必懂得比这里的介绍得多。毕竟,谁会把用Scala语言写的kafka,Erlang语言写的rabitmq 源码全部看一遍呢?与mq相关的面试无非这几个点:push/pull模式、消息模式(点对点、发布/订阅者模型),调用方式(同步调用,异步调用),ACK模式,消息重复问题,消息顺序消费问题等。1原创 2022-03-23 14:04:29 · 3104 阅读 · 0 评论