当前位置: 首页 > wzjs >正文

网站建设宣传广告语郑州网站建设工作室

网站建设宣传广告语,郑州网站建设工作室,东莞网络营销外包价格,办公楼装修设计Kafka 定期清理 Partition,但消息堆积(backlog) 依然可能发生,主要是因为 Kafka 的清理机制和消息消费进度是两回事。我们可以用一个 快递仓库 的类比来解释。 类比:Kafka 就像一个快递仓库 生产者(Produc…

Kafka 定期清理 Partition,但消息堆积(backlog) 依然可能发生,主要是因为 Kafka 的清理机制和消息消费进度是两回事。我们可以用一个 快递仓库 的类比来解释。


类比:Kafka 就像一个快递仓库

  • 生产者(Producer) = 快递员,不断往仓库里送包裹(消息)。
  • 消费者(Consumer) = 快递员从仓库取件,派送给客户。
  • Kafka 的清理机制 = 仓库的定期清理,把 太久没人取走的包裹 扔掉,以免仓库爆满。

消息堆积的核心原因:清理 ≠ 消费

Kafka 定期清理 Partition 主要是为了 删除“太旧的消息”,而不是为了 确保消费者能及时消费消息。如果生产的速度 > 消费的速度,消息就会在 Kafka 里堆积,导致以下几种情况:

1. 消费者太慢(消费跟不上生产)

  • 生产速度快递员(Producer)送货快
  • 消费速度快递员(Consumer)取件慢,导致仓库越来越满。
  • 结果:未被清理的消息越来越多,Partition 里的消息堆积。

示例:

  • 某个 Consumer 处理一条消息需要 5 秒,但 Producer 每秒生产 10 条消息,结果消息越积越多。

解决方案:

  • 提高消费能力:增加 Consumer 数量,采用 Consumer Group 并行消费。
  • 优化消费逻辑:减少不必要的处理延迟(如数据库写入、网络请求等)。
  • 启用批量消费:减少每条消息的处理开销,提高吞吐量。

2. 清理策略不适用于当前负载

Kafka 主要有两种日志清理策略:

  • 基于时间(log.retention.hours):比如“只保留最近 7 天的数据”。
  • 基于大小(log.retention.bytes):比如“每个 Partition 最多 1GB”。

问题是:

  • 如果清理时间长(比如 7 天),那 7 天内的所有未消费消息都可能堆积。
  • 如果清理大小设得很大,Kafka 仍然会存下大量未消费的消息。

示例:

  • 某个 Topic 设定 “7 天后才清理消息”,但 Consumer 3 天内都没消费,这 3 天的消息就会积压。

解决方案:

  • 调整 log.retention.* 设置,减少 Kafka 存储压力。
  • 使用 log.cleanup.policy=delete(而不是 compact),确保老消息能被删除。

3. Consumer 发生故障或重平衡

  • 如果 Consumer 挂掉了,或者在重启过程中,Kafka 不会自动删除它未消费的消息,这些消息会一直在 Kafka 里等着它恢复。
  • Consumer Group 发生 Rebalance(比如有新 Consumer 加入或离开),可能会导致短时间内 Consumer 不能消费数据,造成短暂的消息堆积。

示例:

  • 某个 Consumer Group 只有一个消费者,突然宕机了,Kafka 还会保留消息等它回来,这期间新消息就会堆积。

解决方案:

  • 使用多台机器分摊消费,避免单点故障导致积压。
  • 监控 Consumer 状态,防止意外掉线(如健康检查)。
  • 合理配置 session.timeout.msheartbeat.interval.ms,避免 Rebalance 过于频繁。

4. Producer 生产太快,Kafka 写入瓶颈

  • Kafka 依赖磁盘写入和网络传输,如果磁盘 I/O、网络带宽、Partition 数量等瓶颈达到上限,即使消费者再快,Kafka 也会积压消息。
  • 分区不均衡:如果某些 Partition 的 Leader 节点压力过大,而其他节点压力较小,可能会导致消息在特定 Partition 上堆积。

示例:

  • 一个 Kafka Broker 只有 1GB/s 的磁盘吞吐量,但 Producer 的数据写入速率高达 1.5GB/s,导致 Kafka 本身就写不动,积压在磁盘队列里。

解决方案:

  • 扩展 Kafka 集群:增加 Partition 和 Broker,提高并行吞吐量。
  • 优化 Kafka 磁盘性能:使用 SSD、优化磁盘 I/O、增加 Page Cache。
  • 控制生产速率:使用 Kafka 的流控策略(如 acks=allbatch.size)。

5. 消息 TTL 过长,导致 “僵尸” 消息

  • 如果 Kafka 允许消息存储很久(比如 log.retention.hours=168 表示 7 天),但 Consumer 长时间没消费某些 Partition,这些 Partition 里的消息就会堆积。
  • Kafka 不会主动丢弃未过期的消息,即使它们从未被消费

示例:

  • 某个 Consumer Group 绑定了 auto.offset.reset=earliest,但 3 天内都没消费,Kafka 依然保留这些消息,导致堆积。

解决方案:

  • 减少消息保留时间,避免不必要的堆积。
  • 优化 Offset 提交策略,确保 Consumer 及时提交 Offset,避免重新消费已处理的消息。

总结

原因解释解决方案
消费者太慢生产 > 消费,导致消息积压增加 Consumer 数量、优化消费逻辑
清理策略不适用清理的是“旧消息”,而不是积压消息适当调整 log.retention.* 配置
Consumer 故障或重平衡Consumer 崩溃或 Rebalance,导致无法消费增加 Consumer 副本,优化 Rebalance 逻辑
Kafka 磁盘或网络瓶颈Kafka 本身处理不过来,消息写入太快增加 Partition/Broker,提高硬件性能
消息 TTL 过长未消费但未过期的消息长期堆积降低 log.retention.hours,优化 Offset 提交

总结一句话

Kafka 的 清理机制只是“定期倒掉老水”,但如果 生产的水流太快、消费的水泵太慢,或者仓库太小,消息还是会堆积。所以 Kafka 需要合理优化生产、消费、存储策略,才能避免消息积压

这样解释的话,Kafka 为什么会消息堆积,是不是更清楚了?


文章转载自:

http://JftkXBs0.wnjbn.cn
http://TagefrN4.wnjbn.cn
http://Ei43qkMD.wnjbn.cn
http://kUnVNNlc.wnjbn.cn
http://jNinPfMs.wnjbn.cn
http://7ZYg2zC1.wnjbn.cn
http://WEvYRnOF.wnjbn.cn
http://gSMtUcQu.wnjbn.cn
http://g1xaG36U.wnjbn.cn
http://dLUu0MH3.wnjbn.cn
http://P5ODnhTn.wnjbn.cn
http://uMTsA4UU.wnjbn.cn
http://InswD316.wnjbn.cn
http://9UztHcvV.wnjbn.cn
http://ez3ZkPz1.wnjbn.cn
http://DGFUhomp.wnjbn.cn
http://tYeyNa5u.wnjbn.cn
http://MrpyIocz.wnjbn.cn
http://XNkI23Zn.wnjbn.cn
http://i671cLeE.wnjbn.cn
http://pKWX1qXT.wnjbn.cn
http://IGpHtZvL.wnjbn.cn
http://oA3Fgrj1.wnjbn.cn
http://FQ1xDiFP.wnjbn.cn
http://SKJy9dxa.wnjbn.cn
http://PLIBh6aF.wnjbn.cn
http://mqGXhbBm.wnjbn.cn
http://ikGRB9VW.wnjbn.cn
http://YJcKPPgy.wnjbn.cn
http://OnxeGHXm.wnjbn.cn
http://www.dtcms.com/wzjs/713147.html

相关文章:

  • 知名网站规划软件开发 报价单
  • 12306铁路网站开发语言海口 网站制作公司
  • 青岛做物流网站pantone色卡官网入口
  • php房产中介网站源码做网站泰安
  • 江苏工程建设信息官方网站高端集团官方网站建设公司
  • 广东购物网站建设做一个网站要多少钱
  • 视频logo免费生成网站如何进入网站后台管理系统
  • 做号网站重庆长寿网站设计公司
  • 网页设计旅游网站老鹰画室网站哪家做的
  • 南京中企动力有限公司谷歌seo站内优化
  • 岳阳建站公司网站返回首页按钮
  • 怎么建立自己公司的网站电脑网站开发学习
  • 贵州企业网站建设策划程序员开源网站
  • 全国建设部网站官网wordpress批量删除文章的插件
  • 男女性男女直接做的视频网站百度上广告怎么搞上去的
  • 宠物出售的网站怎么做宁波网站推广外包服务
  • 做网站是怎么赚钱的违法wordpress手机边栏
  • 一般网站的费用413 request entity too large wordpress
  • 做网站优化有什么途径湖北省建设教育协会网站
  • 一元购物网站建设做网站西美花街
  • 外贸网站如何选择域名网站写文案
  • 龙岗网站建设需要考量些什么世界500强企业中国有几家
  • 一个WordPress多个域名龙华优化公司
  • 网站建设 北京昌平营销型网站建设的概念
  • 如何用rp做网站步骤jsp可以做网站吗
  • 个人做商贸网站做网站设计多少钱
  • 揭阳企业网站模板建站旅游网站的建设依据和背景
  • 做刀网站国内著名网站建设公司
  • 网站栏目类型免费素材网站视频
  • 网站开发上线流程做网站和app哪个难