redis 消费组介绍

消费组

1. 简介

当消息是来自相同流时,那么XREAD已经提供了一种扇出到N个消费者的方法。
然而,在某些问题上,我们想做的不是向多个消费者提供相同的消息流,而是向多个消费者提供来自同一流的不同消息子集。这样有一个明显的好处:通过多个消费者,加速处理消息。

如果我们想象有三个消费者C1、C2、C3和一个包含消息1、2、3、4、5、6、7的流,那么我们希望根据以下图表为消息提供服务:
在这里插入图片描述

2. 消费组是如何保证消息不重复,及消费一次的?

消费组就像一个伪消费者,从流中获取数据,实际上为多个消费者服务提供某些保证:

1.每条消息都发送给不同的消费者,因此同一消息不可能传递给多个消费者。

2.在消费者组内,消费者通过一个名称来识别,这是一个区分大小写的字符串,实现消费者的客户来提供。这意味着,即使在断开连接后,流消费者组也会保留所有状态,因为客户将再次声称是同一消费者。然而,这也意味着由消费者供唯一标识符。

3.每个消费者群体都有一个未被使用的ID(下一个被消费的),因此,当消费者请求新消息时,它只能提供以前未发送的消息。

4.消费者需要使用特定命令进行明确确认(a c k)。Redis将确认解释为:此消息已正确处理,因此可以从消费者群体中驱逐。

5.消费者组跟踪当前待处理的所有消息,消费者正在消费,但尚未确认为已处理的消息。多亏了此功能,在访问流的消息历史记录时,每个消费者将只看到传递给它的消息。

在某种程度上,消费者群体可以想象成关于溪流的某种状态:
在这里插入图片描述

3.消费者组可以做什么?

1.向消费者提供他们的待处理消息历史记录
2.请求新消息的消费者将如何获得大于last_delivered_id的消息ID。同时保证了不同消费者获得不同的消息。

4 .下一章提示

XGROUP用于创建、销毁和管理消费者团体。
XREADGROUP用于通过消费者组从流中读取。
XACK是允许消费者将挂起的消息标记为正确处理的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值