gpt4 book ai didi

Python:如何为单元测试模拟kafka主题?

转载 作者:太空狗 更新时间:2023-10-30 00:13:17 25 4
gpt4 key购买 nike

我们有一个消息调度程序,它会根据消息属性生成一个散列键,然后将其放入带有键的 Kafka 主题队列中。

这样做是为了消除重复数据。但是,我不确定如何在不实际设置本地集群并检查其是否按预期执行的情况下测试此重复数据删除。

在线搜索模拟 Kafka 主题队列的工具没有帮助,我担心我可能以错误的方式思考这个问题。

最终,无论用于模拟 Kafka 队列的是什么,都应该以与本地集群相同的方式运行——即通过向主题队列插入 Key 来提供重复数据删除。

有没有这样的工具?

最佳答案

如果您需要验证 Kafka 特定功能或使用 Kafka 特定功能的实现,那么唯一的方法就是使用 Kafka!

Kafka 是否对其重复数据删除逻辑进行了任何测试?如果是这样,以下组合可能足以减轻您的组织的失败风险:

  • 散列逻辑的单元测试(确保同一个对象确实生成相同的散列)
  • Kafka 主题重复数据删除测试(Kafka 项目内部)
  • 飞行前冒烟测试,验证您的应用与 Kafka 的集成

如果 Kafka 没有围绕其主题重复数据删除进行任何类型的测试,或者您担心破坏性更改,那么围绕 Kafka 特定功能进行自动检查很重要。这可以通过集成测试来完成。我最近在基于 Docker 的集成测试管道方面取得了很大的成功。在创建 Kafka docker 镜像(一个可能已经从社区获得)的初步工作之后,设置集成测试管道变得微不足道。管道可能如下所示:

  • 执行基于应用程序的单元测试(哈希逻辑)
  • 一旦通过,您的 CI 服务器将启动 Kafka
  • 执行集成测试,验证重复写入是否仅向主题发送一条消息。

我认为重要的是确保 Kafka 集成测试最小化以仅包括绝对依赖于 Kafka 特定功能的测试。即使使用 docker-compose,它们也可能比单元测试慢几个数量级,~1 毫秒对 1 秒?另一件需要考虑的事情是维护集成管道的开销可能值得冒险相信 Kakfa 将提供它声称的主题重复数据删除。

关于Python:如何为单元测试模拟kafka主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40340100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com