我在做canal机器的性能压测 一次大概修改了100万条mysql表的数据 ` Map<String, CanalDb> dbs = canalProperties.getDbs(); String prefix = getPrefix(dbs); log.info("prefix: {}", prefix); connector = CanalConnectors.newSingleConnector(new InetSocketAddress(canalProperties.getIp(), canalProperties.getPort()), canalProperties.getDestination(), canalProperties.getName(), canalProperties.getDestination()); connector.connect(); // connector.subscribe("..."); // connector.subscribe(".*.login_record,student_ocean"); // connector.subscribe("db_sys.login_record,db_support.student_ocean"); connector.subscribe(prefix); connector.rollback();
while (true) {
int batchSize = 1000;
try {
Message message = connector.getWithoutAck(batchSize);
long batchId = message.getId();
try {
if (batchId != -1 && message.getEntries().size() > 0) {
List<CanalEntry.Entry> entries = message.getEntries();
entries.forEach(this::publishEvent);
}
connector.ack(batchId);
} catch (CanalClientException e) {
log.error("doing sync err.", e);
connector.rollback(batchId);
}
} catch (Exception e) {
log.error("sync binlog err.", e);
}`
这个是我的Canal config代码 在数据同步执行一段时间后我发现报了这个异常信息,观察canal server的日志没有任何异常信息
在服务器查看canalserver进程发现进程终止了,求帮助。。。canal版本是1.1.2
原提问者GitHub用户haijinqi
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
刚进行数据量调整发现这中config方式 数据量控制在25w以内是不会出现这个异常的。 调整了一下另一种方式 每300毫秒ack一次 目前压测到了 50w数据量
原回答者GitHub用户haijinqi