irpas技术客

消息队列内容解析_昨天的光

未知 7510

消息队列应用背景

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

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


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #消息队列内容解析 #1 #2