常见问题解答中 设置了数据表的过滤条件,但貌似没有生效?
检查下CanalConnector是否调用subscribe(filter)方法;有的话,filter需要和instance.properties的canal.instance.filter.regex一致,否则subscribe的filter会覆盖instance的配置,如果subscribe的filter是...,那么相当于你消费了所有的更新数据 【特别注意】
这段描述.
下文的client = CanalConnector的含义
问题1: client的subscribe( )函数是必须调用的吗?
我查看了java php go
三个语言的client示例代码 发现都有这个函数的使用
且.filter默认都是".*\\..*"
从subscribe( )函数的第二个参数来看,填写的是Instances的名字.
那么,我认识 这个函数必须调用
**问题2: 既然client的subscribe( )函数会覆盖服务端Instances的filter规则,
那为何服务端配置一次,client的subscribe( )再配置一次?
修改过滤配置要需改2个地方 这样不合理 还是只建议在client里配置?**
我希望只配置在Instances的规则中.
因为 我要监听的这个数据库示例 有60张表, 而我要监听的表只有6张.
如果全部都发给客户端,客户端再过滤,肯定会影响效率的.
问题3:一个Instances支持多个client吗?
我是否可以每个表 都启动一个client,然后把规则写在client的subscribe( )里?
问题4:php语言的client示例中 给出的性能数据是1秒312个. 这个速度目前不能满足需求,有什么加速的方法吗?
问题5: 当前需求是,只处理数据update场景, 数据insert不需要管 Instances中是否有用相关配置?
还是只能在client自己过滤?
感谢解答.
1条答案
按热度按时间f3temu5u1#
问题3 我尝试 启动2个php 的client程序,但是报错
get data error. error code:400, error message:something goes wrong with channel:[id: 0x18e355c0, /172.31.136.227:61609 =>
/172.16.64.178:11111], exception=com.alibaba.otter.canal.server.exception.CanalServerException: ack error , clientId:1001
batchId:2158 is not exist , please check\