上云无忧 > 文档中心 > 腾讯云消息队列 CKafka 使用教程 - Consumer Group 概述
消息队列 CKafka
腾讯云消息队列 CKafka 使用教程 - Consumer Group 概述

文档简介:
Consumer Group 状态说明: 消费者组列表页中 Consumer Group 的状态主要有 Dead、Empty、PreparingRebalance、AwaitingSync、Stable 几种,其中最常见的是 Empty、Stable 和 Dead 三种状态。Consumer Group 中的状态机转换如下图所示:
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Consumer Group 状态说明

消费者组列表页中 Consumer Group 的状态主要有 Dead、Empty、PreparingRebalance、AwaitingSync、Stable 几种,其中最常见的是 Empty、Stable 和 Dead 三种状态。Consumer Group 中的状态机转换如下图所示:

Dead:消费者组内无成员并且 Metadata 已经被移除。
Empty:消费分组内当前没有任何成员。如果组内所有 offset 都已过期,则会变为 Dead 状态。一般新创建的 Group 默认为 Empty 状态。 开源 Kafka 0.10.x 版本规定,当消费分组内没有任何成员且状态持续超过7天,此消费分组将会被自动删除
Stable:消费分组中各个消费者已经加入,处于稳定状态。

Rebalance 状态详解

Rebalance 发生原因

根据 Consumer Group 的状态机可知,当 Consumer Group 为 Empty、AwaitSync 或 Stable 状态时,Group 可能会进行 Rebalance。以下情况可能会发生 Rebalance:
一个消费者订阅了 Topic。
消费者被关闭。
某个 Consumer 被 Group Coordinator(协调器)认为是 Dead 状态时。 如果某个Consumer 在session.timeout.ms时间内没有给 Group Coordinator 发心跳,则该 Consumer 将被认为是 Dead 状态,并且发起 Rebalance。详请参见 CKafka 常用参数配置指南
分区数增加。
订阅了不存在的 Topic。 如果您订阅了一个还未创建的 Topic,那么当这个 Topic 创建后会发生 Rebalance;同理,如果一个已经被订阅的 Topic 被删除,也会发生 Rebalance。
应用崩溃。

Rebalance 过程分析

以0.10版本Kafka 的机制为例,Rebalance 过程分析如下:
1. 任何一个 Consumer 想要加入到一个 Consumer Group 中时,会发送一个 JoinGroup 的请求给 Group Coordinator。第一个加入 Group 的 Consumer 会变成 Group Leader。
2. Leader 会从 Group Coordinator 处收到这个 Group 中所有 Consumer 列表,并且负责给 Group 中的 Consumer 分配 partition。分区的分配可以通过 PartitionAssignor 接口来实现。
相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部