布伦特VS西汉姆联直播_布伦特VS西汉姆联免费在线高清直播_布伦特VS西汉姆联视频在线观看无插件

2026-05-15 01:06:07

布伦特VS西汉姆联直播_布伦特VS西汉姆联免费在线高清直播_布伦特VS西汉姆联视频在线观看无插件

3,2 从消费组中创建消费者

xreadgroup指令可以进行消费组的组内消费

xreadgroup GROUP cg1 c1 count 1 streams

>号表示从当前消费组的last_delivered_id后面开始读 , 每当消费者读取一条消息,last_delivered_id变量就会前进 萨索洛赛事前瞻

当一个组的消费则消费完全部消息之后,就没有新的消息了

每个消费组(Consumer Group)的状态都是独立的,相互不受影响清水鼓动赛事分析预测。也就是说同一份Stream内部的消息会被每个消费组都消费到。

同一个消费组(Consumer Group)可以挂接多个消费者(Consumer),这些消费者之间是竞争关系,任意一个消费者读取了消息都会使游标last_delivered_id往前移动。

每个消费者者有一个组内唯一名称。

关于消费组,可能不太好理解,举个例子就比较清楚

假设有2个消费组cg1,cg2,对于cg1,其组内共有3个消费者c1,、c2、c3。一个消息队列中共有5条消息a,b,c,d,e,那么一种可能的消费方式如下

a -> c1

b -> c2

c -> c3

d -> c1

e -> c2

也就是说3个消费者,对于消息的消费是互斥的,消费的消息是没有交集的

而对于cg2,同样可以消费a,b,c,d,e这5条消息,不依赖于cg1消费组以及消费情况,同理,具体怎么消费,取决于其组内的消费者数量

就好比体育直播的客户端,正常情况下,网页客户端可以收到所有的直播消息,手机App客户端也可以收到所有的直播消息一样,不同消费组间对消息的消费互不干扰。

4 多个生产者和多个消费者

  这种情况类似以上,不用的是增加了多个消费者,在上面的基础上做了扩展。

  其实不难想象,文字直播插播的广告消息,可能是类似如下结构,是另外一个独立的生产者,与文字直播员一样生成写入消息到队列,然后客户端看到的就是夹杂了广告的直播。

目前就个人认识而言,stream数据类型实现消息队列并不完美,最大的问题就是单点压力问题:这里是说单点压力,而不是单点故障,stream类型数据,其实从逻辑上看,是一个key值(stream_name),跟着一系列value(消息),这些消息只能存储在一个Redis实例中,如何缓解多个消费者对单个Key值中的消息消费压力?说来说去,不就是想说kafka的partition么……

参考:

http://database.51cto.com/art/201812/588189.htm

https://www.zhihu.com/question/279540635