diff --git a/notes/pics/consumer-group.png b/notes/pics/consumer-group.png new file mode 100644 index 00000000..2041c12c Binary files /dev/null and b/notes/pics/consumer-group.png differ diff --git a/notes/消息队列.md b/notes/消息队列.md index 5e5779d0..1e082281 100644 --- a/notes/消息队列.md +++ b/notes/消息队列.md @@ -34,6 +34,8 @@ Kafka、RocketMQ 等通过消费者组把两种模型结合起来:一条消息会发送给每个订阅它的消费者组,但在一个消费者组内只会被一个消费者消费。 +

+ 发布与订阅模式和观察者模式有以下不同: - 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,生产者与消费者不知道对方的存在,它们之间通过频道进行通信。 diff --git a/tools/diagram/src/consumer-group.svg b/tools/diagram/src/consumer-group.svg new file mode 100644 index 00000000..75d75b7c --- /dev/null +++ b/tools/diagram/src/consumer-group.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + 消费者组 + + Topic + + + 分区 0 + + + 分区 1 + + + 分区 2 + + 消费者组 A + + + A1 + + + A2 + + + + + 消费者组 B + + + B1 + + + B2 + + + B3 + + + B4 + 空闲 + + + + 同一个组内,每个分区只分配给一个消费者 + 每个组都会收到 Topic 的全部消息 +