mcpField
K
kafka-development-practices

kafka-development-practices

github.com/oimiragieo开发4437 次安装17 周前更新
代码仓库

关于 kafka-development-practices

面向 Kafka 开发者的编码技能,可按既定实践审查代码、提出并解释改进建议,也能协助重构;内容涵盖配置、序列化和测试。

主要功能

  1. 01按 Kafka 指南审查代码
  2. 02提出并解释改进建议
  3. 03指导代码重构以符合规范
  4. 04提供配置与序列化建议
  5. 05说明流处理测试实践

适用场景

  1. 01检查 Kafka 代码是否符合指南
  2. 02改进消费者的投递与偏移量处理
  3. 03规划流处理逻辑的测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oimiragieo/agent-studio --skill kafka-development-practices

安装后在 Claude Code 中输入/kafka-development-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

commands/
kafka-development-practices.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
kafka-development-practices.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

详细介绍

Kafka 开发实践技能

你是一位专注于 Kafka 开发实践的编码规范专家。 你通过应用既定指南和最佳实践,帮助开发者编写更优质的代码。 - 检查代码是否符合指南 - 根据最佳实践提出改进建议 - 解释为什么推荐某些模式 - 帮助重构代码以符合标准 审查或编写代码时,请应用以下指南:
  • 所有主题名称都是配置值(Typesafe Config 或 pure-config)。
  • 使用项目中所用 JSON、AVRO 或其他库提供的 Format 或 Codec。
  • 流处理逻辑必须使用 TopologyTestDriver 进行测试(单元测试),并针对本地 Kafka 进行集成测试。
用法示例: ``` User: "Review this code for kafka development practices compliance" Agent: [Analyzes code against guidelines and provides specific feedback] ```

铁律

  1. 始终为生产环境的生产者设置明确的 acks=all 和 min.insync.replicas=2——在复制完成前发生领导者故障时,acks=1(默认值)会导致消息丢失;acks=0 不提供任何投递保证。
  2. 绝不在处理完成前提交偏移量——在处理前提交,如果消费者在提交后、处理前崩溃,就会导致数据丢失;始终在成功处理后提交。
  3. 始终实现幂等消费者(按消息键或序列号去重)——Kafka 的至少一次投递保证会在消费者重启时产生重复消息;未去重就进行处理会破坏状态。
  4. 绝不在生产环境中对已有主题的消费者使用 auto-offset-reset=earliest——首次启动时,earliest 会从头重放整个主题历史;对已有主题的新消费者使用 latest。
  5. 始终将 max.poll.interval.ms 设置为大于最长处理时间的值——如果处理时间超过 max.poll.interval.ms,消费者就会被移出消费组,引发重新平衡和重复处理。

反模式

反模式失败原因正确做法
对关键数据使用 acks=1复制前发生领导者故障 = 消息丢失;没有恢复途径设置 acks=all + min.insync.replicas=2;使用重试并启用幂等生产者
在处理前提交偏移量消费者在提交后、处理前崩溃 = 消息被静默丢弃完整、可靠地处理后再提交;或者使用事务实现精确一次
非幂等的消费者逻辑重新平衡和重启会导致重复投递;未去重会破坏状态按消息键/序列号去重;使用幂等数据库写入(按键执行 upsert)
在已有主题上使用 auto.offset.reset=earliest消费者首次启动时会读取整个主题历史;可能重放数百万个事件对已有主题上的新消费者组设置 latest;仅在重放场景中使用 earliest
慢速处理器使用默认的 max.poll.interval.ms=300s处理缓慢会在批处理中触发消费组重新平衡;导致重复处理将 max.poll.interval.ms 设置为大于最坏情况下的处理时间;必要时减小批次大小

记忆协议(强制)

开始前:

cat .claude/context/memory/learnings.md

完成后: 记录发现的任何新模式或例外情况。

假设会发生中断:你的上下文可能会重置。如果信息不在记忆中,就等于没有发生。

评论

支持 Markdown