查看Kafka重平衡日志
Rebalance是重新分配消息组中的消费者和Topic分区之间订阅关系的过程。在Rebalance过程中消费组下的所有消费者都会停止消费,等待Rebalance完成。
可能会触发Rebalance的原因:
- 消费组成员个数发生变化,例如有新的消费者加入,或者有消费者退出。
- 消费组订阅的Topic个数发生变化。
- 消费组订阅的Topic分区数发生变化。
重平衡日志记录Rebalance的详情,包括Rebalance时间、原因和触发Rebalance的客户端等。本章节介绍如何在控制台查看重平衡日志。
重平衡日志存储在云日志服务(Log Tank Service,简称LTS)中,由LTS提供查询功能。
约束与限制
- 2023年4月6日前创建的实例,不支持重平衡日志功能。
- 单机实例不支持查看重平衡日志。
- 重平衡日志默认存储时间为七天,如果需要延长保留天数,可以在LTS控制台修改日志组的存储时间。
- 重平衡日志开启后会在LTS控制台创建对应的日志组、日志流和仪表盘。使用期间按照日志量收费,收费标准请参照LTS价格详情。
前提条件
- 开启重平衡日志需要您的账号拥有LTS服务的创建日志组和日志流的权限。
- Kafka实例处于“运行中”时,才能开启/关闭重平衡日志。
开启重平衡日志
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
- 在左侧导航栏单击“Kafka实例”,进入Kafka实例列表页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“重平衡日志”,进入“重平衡日志”页面。
- 单击“开启日志”,页面右上角显示“重平衡日志开启成功”时,表示开启重平衡日志成功。
开启重平衡日志后,会在LTS控制台创建对应的日志组和日志流。
查看重平衡日志
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
- 在左侧导航栏单击“Kafka实例”,进入Kafka实例列表页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“重平衡日志”,进入“重平衡日志”页面。
- 在“仪表盘”页签,查看消费组重平衡次数和原因。在“日志查询”页签,查看重平衡日志。
如果您需要搜索日志,请参考进入搜索LTS日志页面进行操作。
重平衡日志示例如下:
{ "level":"INFO", "timestamp":"2023-03-23 17:23:22,906", "message":{ "leaderId":"consumer-1-177817b6-1f29-4717-8a83-dda8eaab1635", "generationId":"1", "reason":"Assignment received from leader for group KMOffsetCache-dms-vm-fa3cf9d6-manager-shared-server-0 for generation 1", "groupId":"KMOffsetCache-dms-vm-fa3cf9d6-manager-shared-server-0", "coordinatorId":"0", "type":"END_REBALANCE", "group":"GroupMetadata(groupId=KMOffsetCache-dms-vm-fa3cf9d6-manager-shared-server-0, generation=1, protocolType=Some(consumer), currentState=CompletingRebalance, members=Map(consumer-1-177817b6-1f29-4717-8a83-dda8eaab1635 -> MemberMetadata(memberId=consumer-1-177817b6-1f29-4717-8a83-dda8eaab1635, clientId=consumer-1, clientHost=/172.31.2.168, sessionTimeoutMs=10000, rebalanceTimeoutMs=300000, supportedProtocols=List(range), )))" } }
参数说明如表1所示。
表1 重平衡参数说明 参数名称
说明
level
重平衡日志的等级,只有“INFO”一种等级。
timestamp
Rebalance时间。
leaderId
消费者Leader ID。
generationId
消费者组Generation ID。Generation等同于消费组执行Rebalance的次数,每次Rebalance完成后,Generation都会增加1。
reason
触发Rebalance的原因。
groupId
消费组ID。
coordinatorId
Coordinator组件所在的Broker。
type
触发Rebalance的操作,取值如下:
- JOIN_GROUP:新消费者加入消费组。
- OVER_CAPACITY:超过组限制。
- UPDATE_MEMBER: 消费者更新元数据。
- PROTOCOL_CHANGE:协议变化。
- HEARTBEAT_EXPIRED:消费者心跳超时。
- SYNC_GROUP:同步分配计划。
- END_REBALANCE:重平衡结束。
- LEAVE_GROUP:消费者主动离开消费组。
group
消费组中消费者的信息。
关闭重平衡日志
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
- 在左侧导航栏单击“Kafka实例”,进入Kafka实例列表页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏单击“重平衡日志”,进入“重平衡日志”页面。
- 在页面右上角单击“关闭日志”,弹出确认关闭对话框,单击“确认”,完成重平衡日志的关闭。
关闭重平衡日志只是停止重平衡日志上报功能,LTS控制台的日志组和日志流仍然保留,还会继续收费,如不需要保留该日志,可以在LTS控制台删除对应的日志组和日志流。