kafka C++ 和 java端计算分区ID不一致排查

生产端使用C++,将std:string key 传入,parititon设为-1,表示让kafka自动计算分区id

java端拿到反序列化后的key string,通过murmur2 算法计算出的分区id和kafka分配的分区id不一致

根本原因:C++的kafka使用CRC32 计算hash,Java端使用Murmur2

Key Difference: Hashing Algorithms

Java clients use the Murmur2 hash function by default.

C/C++ clients (which use the librdkafka library) use the CRC32 hash function by default.

只需要在java端也使用CRC32 计算key的hash就行了

相关推荐
程序员佳佳5 小时前
模型网关灰度不是调百分比:把放量、观测和回滚做成账本
java·数据库·人工智能·redis·gpt·aigc·embedding
王老师青少年编程6 小时前
csp信奥赛C++高频考点专项训练:【二分答案】案例2:木材加工
c++·二分答案·csp·高频考点·信奥赛·木材加工
Listen·Rain6 小时前
Springboot整合Ollama实现调用本地多模型
java·spring boot·后端
霸道流氓气质6 小时前
Java 工程师 AI 智能体(Agent)完整学习路线
java·人工智能·学习
aaPIXa6226 小时前
C++模板元编程:编译期计算Fibonacci数列
java·开发语言·c++
SunnyDays10116 小时前
Java 编辑 PDF:从增删改查到加密保护
java·修改 pdf·编辑 pdf
Augustzero7 小时前
`co_await` 按下暂停键之后:从零看懂 C++20 协程
c++·后端
球king7 小时前
CC GUI 插件:在 IDEA 中使用 CodeX
java·ide·intellij-idea
知无不研7 小时前
c语言和c++中的静态关键字
开发语言·c++·静态关键字
豆瓣鸡7 小时前
网关、服务 userId 透传
java·微服务·gateway