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

相关推荐
ps酷教程4 小时前
Jackson 解决没有无参构造函数的反序列化问题
java
NiceCloud喜云4 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
cjhbachelor4 小时前
c++继承
c++
肩上风骋5 小时前
C++14特性
开发语言·c++·c++14特性
_日拱一卒5 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
隔窗听雨眠5 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
智慧物业老杨5 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝6 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
JAVA社区6 小时前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展
金銀銅鐵6 小时前
[Java] 如何理解 class 文件中方法的 descriptor?
java·后端