You need to enable JavaScript to run this app.
导航

修改参数配置

最近更新时间2024.04.01 17:20:46

首次发布时间2022.03.02 10:30:01

创建 Kafka 实例后,您可以根据业务需求修改实例或 Topic 级别的参数配置,例如最大消息大小、消息保留时长等。

背景信息

消息队列 Kafka版在实例与 Topic 级别均提供了部分参数的在线可视化配置,指定不同场景下的各种消息策略,例如通过消息保留时长配置消息过期删除策略、参数自动删除旧消息配置磁盘容量阈值策略等等。

说明

实例级别的参数配置决定了实例各项参数的默认参数值,即修改实例参数配置后,再创建的 Topic 默认参数值为实例的参数配置。实际生效的消息保留时长等配置,以各个 Topic 的参数配置为准。

磁盘容量阈值策略

设置消息保留时长后,如果实例的磁盘容量充足,过期的消息会被按时自动删除。如果业务在短时间内消息猛增,此时尚未过期的消息快速填满了某个 Broker 或全部实例的磁盘空间,可能造成生产和消费的异常。消息队列 Kafka版在磁盘容量不足时,通过阈值策略管理保证服务的可用性。
Kafka 实例支持自定义设置磁盘清理水位,且每个 Broker 的磁盘清理水位相同。如果实例整体磁盘使用率达到清理水位,或因数据不均衡导致某个 Broker 的磁盘使用率达到清理水位时,无论消息是否超过消息保留时长,都会按服务端存储消息的时间先后顺序删除该节点的部分历史消息,直至磁盘水位恢复,避免磁盘使用率过高导致 Kafka 实例异常,以及避免因节点无法同步数据导致的副本不同步。

说明

  • 触发自动删除策略时,如果消息写入速率超过了磁盘自动清理的速度,后端服务会在磁盘被写满前暂停写入数据。
  • 推荐设置 Broker 磁盘容量的阈值监控告警,在磁盘使用率接近清理水位之前及时处理,避免消息在自然老化前被删除。推荐设置的告警策略请参考实例磁盘使用容量超过 30% 且磁盘倾斜率超过 30%

消息过期删除策略

消息队列 Kafka版提供消息的过期删除策略管理,即通过参数消息保留时长配置磁盘容量充足时,消息存储在服务端的时长。
磁盘容量充足时,服务端定期检查并自动清理超过保留时长的消息,但每个分区会至少保留一个当前使用的 log 文件,因而可能有些消息超过时限却依然保留着。因此,您有可能查询到超过消息保留时间的消息。

注意事项

  • 修改实例的参数配置,不影响所有已创建的 Topic 参数配置。假设 Topic 已经设置了最大消息大小和消息保留时长,在实例级别修改最大消息大小和消息保留时长对此 Topic 不生效。
  • 修改实例的消费位点保留时长将引发实例滚动重启,请确认业务侧已配置了自动重连等策略。
  • 修改最大消息大小(MessageMaxByte)之前,请确认新的消息大小和生产与消费客户端配置相匹配,否则可能会出现消息丢失的情况。

修改实例的参数配置

说明

修改实例的参数配置之前,应确认 Kafka 实例状态为运行中

操作步骤如下。

  1. 登录消息队列 Kafka版控制台

  2. 在顶部菜单栏中选择地域,并在选择左侧导航栏中单击实例列表

  3. 实例详情页签的参数配置区域单击修改

  4. 填写新的参数配置,并单击确定

    参数

    说明

    最大消息大小

    单条消息的最大长度,即消息队列 Kafka版能收发的消息的最大值。 该参数设置需要和生产与消费客户端配置相匹配,否则可能会出现消息丢失的情况。
    单位为 MB,取值范围为 1~12。默认值为 10。

    消息保留时长

    在磁盘容量充足的情况下,消息的最大保留时长,即消息的存储时间。单位为小时,取值范围为 1~2160,即消息最久保留 90 天。
    磁盘容量达到 90% 时,为确保服务可用性,后端服务会提前删除部分历史消息,详细说明请参考磁盘容量阈值策略

    消费位点保留时长

    消费位点的最大保留时长。 从提交消费位点的时间开始计算,超过该时长的消费位点将被删除。每向一个 Topic 分区提交一次消费位点,该消费位点的保留时间就会被重置,即从 0 开始计算。
    单位为分钟,取值范围为 1~10080,即消费位点最久保留 7 天。默认值为 4320 分钟,即 3 天。

    说明

    修改实例的消费位点保留时长将引发实例滚动重启,可能会出现服务的短暂不可用。建议您在客户端实现重连机制,以避免客户端断开连接无法重连。

    消息时间类型

    消息时间戳类型。默认设置为 CreateTime。支持设置为:

    • LogAppendTime:使用服务端写入消息的时间作为消息时间戳。
    • CreateTime:使用 Producer 创建消息的时间,也就是客户端传入的消息时间戳(CreateTime)作为消息时间戳。

    自动删除Group

    是否自动删除 Group。默认为关闭状态。

    • 开启后,如果消费者组中的所有消费者处于 Empty 状态,超出消费位点保留时长后会自动删除该消费者组。
    • 关闭后,消费进度的自动删除不影响消费组的状态,Empty 状态的 Group 不会被自动删除。

    说明

    修改该参数配置将引发实例滚动重启,可能会出现服务的短暂不可用。建议您在客户端实现重连机制,以避免客户端断开连接无法重连。

  5. 在弹出对话框中确认修改的参数名称及修改前后的运行值,单击确定

修改 Topic 的参数配置

说明

Kafka 实例状态为运行中,且Topic状态为服务中时,才能修改 Topic 的参数配置。

操作步骤如下。

  1. 登录消息队列 Kafka版控制台

  2. 在顶部菜单栏中选择地域,并在选择左侧导航栏中单击实例列表

  3. 找到目标实例,单击实例名称。

  4. 在顶部页签栏中单击Topic管理

  5. 找到目标 Topic,并在其对应的操作列单击修改配置

  6. 填写相关配置参数。

    参数

    说明

    分区数

    此 Topic 的分区数量。分区数量越大,消费的并发度越大。
    默认值为 12,取值范围为 1~300。分区数量应为 Broker 数量的整数倍,您可以参考查看节点信息查看当前实例的 Broker 数量。
    该参数只能调大不能调小,且不可超过 Kafka 实例的剩余可用分区数。

    副本数

    分区的副本个数,表示在对应数量的副本上备份数据,用于保障分区的高可用。当其中一个 Broker 故障时仍可保障数据可用性,副本数越大可靠性越高。
    副本数支持设置为 1、2 或 3,默认为 3。

    说明

    • 增加副本数会占用实例磁盘容量,请确保容量充足。增加副本时会占用实例带宽资源,建议在业务低峰期操作。
    • 减少副本数会降低数据可用性,请谨慎操作。
    • 1 副本 Topic 无法保障数据可靠性且实例升级期间无法进行读写操作,建议选择 2 副本或 3 副本。

    最小同步副本数

    Topic 最小同步副本个数,即 min.insync.replicas 参数。该值越大,数据可靠性越好,但是可用性将会降低。

    • 副本数为 1 时,最小同步副本数只能为 1。
    • 副本数为 2 或 3 时,最小同步副本数不能超过副本数减 1。

    消息保留时长

    磁盘容量充足时,消息在此 Topic 中的最大保留时长,即消息的存储时间。消费者必须在此时间结束前消费消息,否则消息将被删除。删除的消息,无法被消费。
    单位为小时,取值范围为 0~2160,目前支持的最大存储时长为 90 天。默认为实例级别的消息保留时长,您也可以在此处指定该 Topic 的消息保留时长,仅对该 Topic 生效。

    最大消息大小

    此 Topic 中单条消息的最大长度。
    取值范围为 1MB~12MB。默认为实例级别的最大消息大小,您也可以在此处指定该 Topic 的最大消息大小,仅对该 Topic 生效。

  7. 单击确定