[admin@iZ2ze1fj7q5onlv7fznya0Z 01]$ tail -f 01.log {"identity":{"slaveId":-1,"sourceAddress":{"address":"","port":3301}},"postion":{"gtid":"","included":false,"journalName":"mysql-bin.000002","position":217043434,"serverId":100,"timestamp":1554980641000}} 2019-04-11 19:10:39.300 [destination = 01 , address = /:3301 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> find start position successfully, EntryPosition[included=false,journalName=mysql-bin.000002,position=217043434,serverId=100,gtid=,timestamp=1554980641000] cost : 457ms , the next step is binlog dump 2019-04-11 19:11:14.298 [destination = 01 , address = /:3301 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /:3301 has an error, retrying. caused by com.alibaba.otter.canal.parse.exception.CanalParseException: java.lang.OutOfMemoryError: Java heap space Caused by: java.lang.OutOfMemoryError: Java heap space 2019-04-11 19:11:14.441 [destination = 01 , address = /:3301 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:01[com.alibaba.otter.canal.parse.exception.CanalParseException: java.lang.OutOfMemoryError: Java heap space Caused by: java.lang.OutOfMemoryError: Java heap space ] 2019-04-11 19:11:15.544 [destination = 01 , address = /***:3301 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - parse events has an error java.lang.OutOfMemoryError: Java heap space
这是 canal destination 的日志,请问下内存溢出的原因是什么?可以怎么处理?
canal版本为1.1.2
原提问者GitHub用户just-JL
当 Canal 的 destination 日志中出现 "parse events has an er" 的错误信息时,通常是由于 Canal 在解析事件时发生了内存溢出。
这种情况可能是由于以下原因导致的:
Canal 配置文件中的 canal.instance.memory.max 参数设置过小,无法满足 Canal 处理大量数据的需求。可以尝试增加该参数的值来解决此问题。
Canal 与数据库之间的连接数过多,导致内存占用过高。可以尝试优化数据库连接池或者减少 Canal 与数据库之间的连接数来解决此问题。
Canal 处理的数据量过大,超出了机器内存的限制。可以尝试将数据拆分成多个部分进行处理,或者使用分布式部署的方式来解决此问题。
Canal 代码中存在内存泄漏的问题,导致内存不断增加。可以对 Canal 代码进行排查和优化,确保代码中不存在内存泄漏的问题。
总之,当 Canal 的 destination 日志中出现 "parse events has an er" 的错误信息时,需要仔细分析日志,并结合实际情况采取相应的措施来解决问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。