消息队列内容解析

消息队列应用背景

消息队列常见的应用场景有:异步,解耦,削锋。

1. 异步处理数据

在这里插入图片描述
异步可以类举生活中的例子,比如说是取送快递,如果快递员需要直接对用户进行签收,那么效率会大大降低,而引入快递柜(消息队列)通过引入快递暂存的功能,从而可以达到异步的效果,效率可以大大增加。

2. 系统应用解耦

在这里插入图片描述
解耦:在不引入消息队列的情况下,消费者想要获取数据,需要直接于生产者进行联系,这样耦合度就会比较大,引入消息队列后,消费者想要获取信息,直接从消息队列中进行获取就可以了,生产者和消费者之间的联系就非常少了,从而达到解耦的效果。

3. 业务流量削锋

在这里插入图片描述
削锋:这里可以举出双十一,618等购物狂欢活动,在不引入消息队列的情况下,在特定时间点,数据暴增,可能会导致一端的服务扛不住。在引入消息队列之后,生产者写数据到消息队列,下游从消息队列中拿数据, 在高峰期起到对流量的一个削锋,从而保证了整个服务的可用性。

总结:消息队列主要解决了消息不要求实时处理,一份数据多处使用,不同消费方消费速度不同的场景。

主流的消息队列产品

在这里插入图片描述

消息队列对比

在这里插入图片描述

消息队列的核心模型

在这里插入图片描述

生产者

生产者(producer),主要生产消息,并发送给消息队列,通常有同步,异步两种方式。

消息队列

消息队列(message queue),主要保存/暂存生产者生产的消息,并将消息以某种方式告知消费者,消息队列一般具备消息分类(topic)的能力,存储消息的队列称为msg queue。

消费者

消费者(consumer),主要从消息队列中取出消息,并进行消费,这里的取出消息的方式主要有两种(主动拉取消息,等待推送消息)

推/拉模型区别

在这里插入图片描述

消费者消费模型(1:N:M )

在这里插入图片描述

(1:N:M):一份数据发送到N个消费者组中的M个消费者。

为了提高消费效率,引入消费者组,发布订阅时,以消费者组/订阅作为单位。offset以(group+topic+partition)为单位维护。组间广播,组内单播。

注意:一般,一个队列只能被一个消费者组中的一个消费者消费,但一个消费者可以消费多个msg queue中的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值