检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Kafka实例是否需要创建消费组、生产者和消费者? “auto.create.groups.enable”为“true”时,不需要单独创建消费组、生产者和消费者,在使用时自动生成,实例创建后,直接使用即可。 “auto.create.groups.enable”为“false”时
分区数较多且每个消费者开启多个线程的情况下。 如图1所示,Topic含有多个分区,消费组中有多个消费者同时进行消费,每个线程均为长连接。当Topic中消息较少或者没有消息时,连接不断开,所有消费者不间断地拉取消息,这样造成了一定的资源浪费。 图1 Kafka消费者多线程消费模式 解决方案
列表页面。 单击待查看消费者列表的消费组名称,进入消费组详情页。 在“消费者列表”页签,查看消费者列表。 在消费者列表中,可以查看消费者ID、消费者地址和客户端ID。 (可选)如果需要查询某个消费者,在搜索框中,输入消费者ID,按“Enter”。 查看消费者列表(客户端) 未开启
如果消息组中没有在线的消费者(如empty状态),是否14天后会自动被删除? 消息组中没有在线的消费者(如empty状态),14天后是否会自动被删除与offsets.retention.minutes、auto.create.groups.enable参数有关: 2023年4月25日前创建的实例,auto
topics”的报错。 图1 消费者访问权限 处理方法: 如果业务要求所有消费者在同一个消费组内,即group.id相同,解决方法:为所有消费者授权相同的Topic访问权限。 如果消费者不需要在同一个消费组内,解决方法:修改group.id,让每个消费者单独在一个消费组内。 父主题:
查看和重置Kafka消费进度 消费进度表示消费者的消费位置,本章节介绍如何查看和重置消费进度,重置消费进度即修改消费者的消费位置。 操作视频 本视频演示重置Kafka消费进度的操作。 约束与限制 重置消费进度可能会导致重复消费,请谨慎操作。 前提条件 Kafka实例不支持在线重置
消息发送和消费的可靠性必须由分布式消息服务Kafka版和生产者以及消费者协同工作才能保证。同时开发者需要尽量合理使用分布式消息服务Kafka版的Topic,以提高消息发送和消息消费的效率与准确性。 对使用分布式消息服务Kafka版的生产者和消费者有如下的使用建议: 重视消息生产与消费的确认过程 消息生产
正常情况下消费组内加入新的消费者或老的消费者退出都会导致Rebalance,这种情况是无法避免的。但是某些特殊情况下,消费者会被服务端认为异常从而被踢出消费组,此时可能会导致消费异常,需要重点关注。 消费者被服务端认为异常从而被踢出消费组的场景如下: 未能及时发送心跳请求。 消费者以设置的heartbeat
创建Kafka消费组 消费者是从Topic订阅消息的一方,消费组是由一个或多个消费者组成的。同一个消费组内,一个消费者可同时消费多个分区,但一个分区在同一时刻只能被一个消费者消费。 图1 消费关系示例图 “auto.create.groups.enable”表示在消费者进入未创建的消费组时,会自动创建此消费组。
Rebalance是重新分配消息组中的消费者和Topic分区之间订阅关系的过程。在Rebalance过程中消费组下的所有消费者都会停止消费,等待Rebalance完成。 可能会触发Rebalance的原因: 消费组成员个数发生变化,例如有新的消费者加入,或者有消费者退出。 消费组订阅的Topic个数发生变化。
生产者向消息主题发布消息,多个消费者订阅该消息主题的消息,生产者与消费者彼此并无直接关系。 生产者(Producer) 向Topic(消息主题)发布消息的一方。发布消息的最终目的在于将消息内容传递给其他系统/模块,使对方按照约定处理该消息。 消费者(Consumer) 从Topi
置文件或代码中启用消息压缩,则表示压缩后的最大批处理大小。 如果增加“批处理消息最大值”,且存在消费者版本早于0.10.2,此时消费者的“fetch size”值也必须增加,以便消费者可以获取增加后的批处理大小。 取值范围:0~10485760 描述 Topic的描述信息,长度为0~200个字符。
在生产者客户端中开启幂等或事务,然后生产消息,此时您会在消费者客户端或Kafka控制台的“消息查询”中观察到消息offset不连续的现象。这是因为开启了幂等或事务后,在生产消息时会产生一些元数据控制消息,这些控制消息也会生产到该Topic中, 且它们对消费者不可见,从而造成offset不连续的现象。
消费组问题 Kafka实例是否需要创建消费组、生产者和消费者? 如果消息组中没有在线的消费者(如empty状态),是否14天后会自动被删除? 为什么删除消费组不生效? 实例消费正常,为什么看不到消费者? Kafka可以删除消费组下不用的Topic吗?
生产者短时间内生产大量消息到Topic,消费者无法及时消费。 消费者的消费能力不足(消费者并发低、消息处理时间长),导致消费效率低于生产效率。 消费者异常(如消费者故障、消费者网络异常等)导致无法消费消息。 Topic分区设置不合理,或新增分区无消费者消费。 Topic频繁重平衡导致消费效率降低。
管理消费组 创建Kafka消费组 查看Kafka消费组信息 查看Kafka消费者信息 查看和重置Kafka消费进度 查看Kafka重平衡日志 修改Kafka消费组信息 导出Kafka消费组列表 删除Kafka消费组
查看Kafka消费组信息 消费组创建成功后,可查看消费组配置信息和状态信息。 查看消费组列表(控制台) 登录管理控制台。 在管理控制台左上角单击,选择区域。 请选择Kafka实例所在的区域。 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
分布式消息服务Kafka版支持在控制台删除消费组、重置消费进度以及查看消费者连接地址。 支持区域: 全部 删除消费组 重置消费进度 查看消费者连接地址 修改配置参数 分布式消息服务Kafka版为实例、Topic、消费者提供了几个常用配置参数的默认值,您可以根据实际业务需求,在控制台自行修改参数值。
修改Kafka消息老化时间 老化时间即消息的最长保留时间,消费者必须在此时间结束前消费消息,否则消息将被删除。已删除的消息,无法被消费。 Topic老化时间默认为72小时,创建Topic成功之后,您可以根据业务需要修改Topic的老化时间。修改老化时间,不会影响业务。 修改老化时间可以通过以下方式实现:
为什么删除Topic不生效?删除后该Topic仍然存在 可能原因:您开启了自动创建Topic功能,且有消费者正在连接该Topic。所以,如果没有停止您的业务,删除了Topic后,还会有消息生产行为,并自动创建Topic。 解决办法:需要关闭自动创建Topic功能,才可以正常删除Topic。