栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

消息队列内容解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

消息队列内容解析

消息队列应用背景

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

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中的数据。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/732056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号