开发者社区> 问答> 正文

canal deployer 1.0.14版本,在client端接受到的entry都是TRANSAC

具体现象是这样的,在canal的server端启动的一小段时间内接受到的数据是正常的,但是在过大约10分钟之后,客户端接受到的entry的entryType就全部为TRANSACTION_BEGIN和TRANSACTION_END了。

曾经怀疑是我写的客户端有问题,但是把客户端换成示例客户端还是一样的效果。

已经尝试将server端的日志级别设置为debug,但是没有得到什么有价值的调试信息。

麻烦提供一下解决此问题的思路,或者我的server端配置有问题,可能是哪儿的问题,谢谢!!!

原提问者GitHub用户yukaizhao

展开
收起
绿子直子 2023-05-09 16:11:17 108 0
2 条回答
写回答
取消 提交回答
  • 这个问题的原因找到了。

    在instance.properties中配置的数据库名称是小写的,但是mysql上的数据库是大写的,同时配置了大小写敏感,所以大多数的是空的。

    但是::不解的是为什么会消费一段时间,然后就不行了。如果是因为大小写的原因,那应该是一条都没有,这样才合理。

    建议:在canal.properties中增加大小写敏感的选项

    原回答者GitHub用户zppio

    2023-05-10 11:05:46
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    首先,问题看起来是出现在 Canal Server 端的。可能的问题是 Canal Server 的配置或者运行状况导致了 Entry 类型的错误。以下是几个可能的解决方案:

    检查 Canal Server 的配置文件 首先,您需要仔细检查 Canal Server 的配置文件,确保没有任何配置文件参数导致 Entry 类型被更改。您需要检查 canal.instance.filter.regex 配置参数是否存在,如果存在,请检查正则表达式是否正确。如果您在 canal.instance.filter.regex 中使用了不正确的表达式,则很有可能引发 Entry 类型错误。

    检查 Canal Server 的运行状况 如果您的 Canal Server 在运行时出现错误,可能导致 Entry 类型被更改。您需要检查 Canal Server 的运行状况,并查看是否存在任何错误或异常。如果是这样,请尝试解决这些错误或异常。

    检查 Canal Server 版本 您需要检查 Canal Server 的版本是否正确。如果您的 Canal Server 的版本太老,可能无法正确处理 Entry 类型。您需要升级 Canal Server 的版本,以确保其能够正确处理 Entry 类型。

    检查客户端 如果 Canal Server 已经根据上述建议进行了检查,那么可能是客户端的问题。检查客户端是否正确处理 Entry 类型,并确保客户端和 Canal Server 的版本兼容。

    我建议您从以上几个方面入手进行排查和解决问题。如果这些方案都没有解决您的问题,请在 Canal 的 GitHub issue 页面上询问其他开发者是否遇到了类似的问题。

    2023-05-09 17:32:54
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载