使用Debezium MongoDB连接器无法读取MongoDB变更流问题排查
问题根源
这个错误是Debezium MongoDB连接器与MongoDB Java驱动版本不兼容导致的:ChangeStreamDocument.getSplitEvent()方法是MongoDB Java驱动较新版本(4.4及以上)中新增的API,而你的环境中存在的MongoDB驱动版本过低,或者有旧版驱动的依赖冲突,导致Debezium连接器调用该方法时找不到对应的实现。
解决方案
- 检查Debezium与MongoDB驱动的版本匹配性:根据你使用的Debezium版本,确保对应的MongoDB驱动版本符合官方要求(例如Debezium 2.4.x要求MongoDB驱动4.9.x系列),不要混用不匹配的版本。
- 清理依赖冲突:如果是在Kafka Connect环境下,排查是否有其他连接器引入了旧版MongoDB驱动,导致类加载冲突。确保整个Connect集群中MongoDB驱动版本统一,没有冗余的旧版驱动jar包。
- 确认MongoDB服务器版本:虽然初始快照正常,但
SplitEvent相关特性与分片集群的变更流处理有关,确保你的MongoDB服务器版本在Debezium支持的范围内(比如Debezium 2.4支持MongoDB 4.0~6.0)。 - 重新部署连接器:使用官方提供的完整Debezium MongoDB连接器包,避免自行修改或缺失依赖组件,确保连接器的所有依赖jar包版本一致。
内容的提问来源于stack exchange,提问作者Rohit
相关产品推荐
相关产品推荐

