Kafka常见使用问题

消息丢失

  1. 生产者方:设置ack为1或-1/all可以防止生产的消息丢失,如果要做到生产消息成功率提高到最高,ack设置成all,把min.insync.replicas配置成分区备份数,把ack设置成1或者-1/all,这样生产者生产的消息发送到broker中,会等待leader或者至少leader和一个副本同步到消息才会返回ack,如果生产者同步消息失败,会进行重试
php 复制代码
		$conf->set('message.send.max.retries', 5);
        // -1必须等所有brokers同步完成的确认 1当前服务器确认 0不确认,这里如果是0回调里的offset无返回,如果是1和-1会返回offset
        // 我们可以利用该机制做消息生产的确认,不过还不是100%,因为有可能会中途kafka服务器挂掉
        $conf->set('request.required.acks', 1);
  1. 消费者方:把自动提交改为手动提交offset

重复消费

  1. 生产者:通过ack设置,尽量保证消息不回重复发送,但是因为网络抖动和重试机制,还是会导致消息重复
  2. 消费者:对关键数据进行幂等处理,防止关键数据重复处理。一般实现幂等的操作:
    • 数据投递之前生成唯一uuid
    • 数据消费的时候,使用乐观锁,防止重复消费

保持数据有序

  1. 生产者投递数据时,支持根据关键数据(例如uid)生成哈希值,同一个uid可以投递到指定的partition
  2. 日志类的数据,可以在投递数据前,就记录生成时间,消费的时候,根据时间存储到db中
相关推荐
海兰4 分钟前
【Kafka进阶6】顺序消费深度解析
分布式·kafka·linq
2601_960906721 小时前
Anthropic把Claude Code 2.1.236及以上版本的Fable 5会话
人工智能·kafka·时序数据库·etcd·tdengine
YH行业报告分析4 小时前
2026年直流配电网市场结构性增长解析:分布式能源并网与智能电网升级驱动下的技术路线博弈
分布式·能源
剑胆琴心静水深流12 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
xiamo@moment16 小时前
kafka学习笔记-概念总集
运维·kafka
KAIWEILIUCC16 小时前
Ray:高性能、易扩展的Python分布式计算框架
分布式·llm
一路向北finish20 小时前
《CentOS 7 搭建 Hadoop 3.3.6 分布式集群:NFS 共享方案完整实操》
linux·运维·hadoop·分布式·centos
天涯明月199321 小时前
Ray 架构解析——以动态任务图统一 AI 计算的分布式框架
大数据·人工智能·分布式·架构·ray
小张同学a.1 天前
MooseFS 分布式存储实战指南:部署、运维与 Pacemaker+SBD 高可用落地
linux·运维·分布式·pacemaker·moosefs·sbd
BYSJMG1 天前
大数据毕业设计选题方向|【基于大数据的燃油消耗数据可视化与分析】Hadoop+PySpark+FP-Growth
大数据·hadoop·分布式·信息可视化·数据分析·课程设计