canal配置canal.instance.filter.regex无效

canal 能够经过在instance.properties设置canal.instance.filter.regex,来忽略不关心的数据变动的parse和sink处理,优化性能,同时减小没必要要的存储开销。mysql

canal instance启动时,默认加载instance.properties的canal.instance.filter.regex参数,以后会根据conf/canal/meta.dat文件filter值更新过滤规则。当客户端调用CanalConnector.subscribe(String filter)方法时,instance再次用filter参数更新过滤规则。sql

meta.dat文件以下:ide

{
	"clientDatas": [{
		"clientIdentity": {
			"clientId": 1001,
			"destination": "canal",
			"filter": "canal\\..*"
		},
		"cursor": {
			"identity": {
				"slaveId": -1,
				"sourceAddress": {
					"address": "127.0.0.1",
					"port": 3306
				}
			},
			"postion": {
				"included": false,
				"journalName": "mysql-bin.000047",
				"position": 15143,
				"serverId": 1,
				"timestamp": 1479809428000
			}
		}
	}],
	"destination": "canal"
}

因此当你只关心部分库表更新时,设置了canal.instance.filter.regex,必定不要在客户端调用CanalConnector.subscribe(".*\\..*"),否则等于没设置canal.instance.filter.regex。post

若是必定要调用CanalConnector.subscribe(".*\\..*"),那么能够设置instance.properties的canal.instance.filter.black.regex参数添加黑名单,过滤非关注库表。性能

canal版本:1.0.22优化

相关文章
相关标签/搜索