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

相关推荐
nanxun8865 小时前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103518 小时前
Day01 | Java 基础(Java SE)
java
行者全栈架构师9 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师13 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_013 小时前
mac(m5)平台编译openjdk
java
唐青枫2 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454752 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程