java - 汇合连接,Debezium,java.lang.OutOfMemoryError
问题描述
我们在 Amazon EKS 中托管了一个 Confluent Connect v5.01 容器集群,以运行 Debezium for SQL Server 连接器 v0.9.5 的多个实例。有时,当我们重新配置其中一个连接器时,它会触发重新平衡,并且一个连接器(并不总是同一个)似乎变得不正常并消耗了分配给容器的所有内存。这使我们的日志充满了以下日志条目的数万个细微变化......
INFO Skipping change ChangeTablePointer [changeTable=Capture instance "REDACTED" [sourceTableId=REDACTED, changeTableId=REDACTED, startLsn=008e7c10:00313f98:0010, changeTableObjectId=914583783, stopLsn=NULL], resultSet=SQLServerResultSet:2825973, completed=false, currentChangePosition=008e9893:00010320:0035(008e9893:00010230:0046)] as its position is smaller than the last recorded position 008e9893:00010320:0035(008e9893:00010320:0033) (io.debezium.connector.sqlserver.SqlServerStreamingChangeEventSource)
...在最终达到容器的内存限制之前,这会导致容器崩溃。
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "kafka-producer-network-thread | REDACTED-dbhistory"
这会触发另一个重新平衡,从而重新启动循环。
我们已将问题追溯到 Debezium 中的这行代码,这似乎表明连接器在重新启动时试图找到它停止的位置,但在此过程中消耗了太多内存。您可以提供任何线索来帮助我们追踪和解决问题,我们将不胜感激。
解决方案
推荐阅读
- pentaho - 如何在pentaho中显示转换结果写入日志步骤?
- django - django过滤两个ManyToManyField相等
- ansible - Ansible:使用循环执行任务,并获取第一个成功的结果
- python-3.x - 通过 pip3 dynaconf 安装期间的异常
- python - 在 Amazon Linux ec2 PEP 517 错误上安装 Pip
- angular - abp.io 如何在 Angular 模板中删除身份服务器
- ios - 在 xcode 11.4 中将离子电容器部署到 AppStore 时出错
- java - 在java中使用ipv6进行客户端/服务器套接字编程
- timer - 计时器上下乒乓球
- sql - 在 Oracle Sql Developer 中,如何使用 generatekey() 函数获取密钥以加密数据表中的员工密码?