小韦云链二次开发手册

canal常见问题

小韦云科技-区块链+小程序+公众号+商城+分销+直播+企业官网+外贸电商-为您提供优质的开发服务-电话/微信联系:18123611282

1、java版本太高

最新的canal1.5版本最高能支持的java是8,之前的11,14版本都无法支持。

2、数据库名不能带点“.”

在mysql数据库,你可以创建这样的数据库名:bctos1.5

但这是不规范的写法,虽然在数据库使用过程不会报错,但在canal中会报错,只能使用下划线代替,如上面要修改成这样:bctos1_5

3、PHP客户端无法直接在ThinkPHP中使用

使用composer安装的thinkphp项目中,直接composer把canal-php安装到vendor下,除了像之前的章节【PHP客户端启动】那样把canal-php集成到命令行指令中外,如果是直接启动时会报下面这些错误

PHP Fatal error:  Uncaught Error: Class 'Route' not found in xxx\vendor\topthink\think-captcha\src\helper.php:12
Stack trace:
#0 xxx\vendor\composer\autoload_real.php(69): require()
#1 xxx\vendor\composer\autoload_real.php(59): composerRequirefd24799f0b5b99927d6239d5dd3c4361('1cfd2761b63b0a2...', 'xxx...')
#2 xxx\vendor\autoload.php(7): ComposerAutoloaderInitfd24799f0b5b99927d6239d5dd3c4361::getLoader()
#3 xxx\vendor\xingwenge\canal_php\src\sample\client.php(8): require_once('E:\\htdocs\\zhihu...')
#4 {main}
  thrown in xxx\vendor\topthink\think-captcha\src\helper.php on line 12

因此需要使用一个独立项目的方式安装canal_php,可以在thinkphp项目新创建目录或在其它地方新创建目录作为canal_php的项目目录,比如我会在thinkphp项目根目录在创建一个canal_php目录,然后使用git手工下载代码

git clone https://github.com/xingwenge/canal-php.git canal_php
cd canal_php
composer update

然后执行测试文件

php src/sample/client.php

测试效果

4、canal服务端耗服务器资源

如果在阿里1核1G内存的低配置服务器上开启canal服务,会导致CPU使用率过高从而死机(从平时的10%能直接拉到60%以上)

如下图,开启和关闭canal服务的效果

因此不建议在低配置服务器的服务器上使用。

本文由小韦云原创,转载请注明出处:https://www.bctos.cn/doc/11/1886,否则追究其法律责任

关键词:canal 常见问题

广告位招商