apache-kafka - 如何在代码中计算 Kafka *会发送(并且之前确实发送过)*发送消息的分区?
问题描述
使用主题和 msg 键 Kafka 根据以下内容分配主题分区:
... Utils.Murmur2(bytes) % numPartitions ....
现在很容易找到 murmur2 代码。但是,murmur2 需要一个可以更改运行的种子。
我的问题:给定一个键,例如字节序列,我如何计算 Kafka将使用这些相同的键字节将消息发送到哪个分区?假设分区一致。
有了这些信息,我可以在应用程序弹跳时在不同的分区侦听器中预先缓存一些信息。
解决方案
Kafka 中的种子是一致的。您可以在源代码中找到它
因此,Utils.toPositive(Utils.murmur2(bytes)) % numPartitions
这就是您所需要的一切
推荐阅读
- javascript - 将选定的日期范围选择器值推送到 URL
- c++ - ncurses 在 cchar_t 上找不到任何文档
- r - 使用[[时的R错误子集data.frame
- reactjs - 如何使用 Mocha 对通过 promise-retry 调用服务进行单元测试?
- android - Firebase 分析:仅发送一次事件
- reactjs - 在 vscode 中调试 React JSX
- java - 这种情况如何与 ArrayList 一起使用?
- javascript - 使坐标被某些其他坐标吸引/排斥
- c# - 为 API 请求禁用 StatusCodePages 中间件
- nhibernate - nHibernate 4.1.4 没有引用与保留关键字匹配的表名