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就行了

相关推荐
2401_892070981 天前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
yuzhuanhei1 天前
Visual Studio 配置C++opencv
c++·学习·visual studio
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
于慨1 天前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg3213211 天前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald1 天前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川1 天前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月1 天前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming6661 天前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川1 天前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java