关于mysql-binlog-connector-java的两点疑问
来源:9-4 【总结与作业】mysql-binlog-connector-java介绍及作业

慕娘5223032
2019-08-30
张老师您好,我想问两个问题:
1.监听binlog里的onEvent方法里是不是不适合进行一些耗时的操作,比如向数据库里写入数据等等,感觉onEvent里适合一些处理完能立即返回的操作,比如投递到消息队列等等。
2.mysql-binlog-connector-java这个组件能否只对一些我感兴趣的事件进行订阅呢,比如我只对UpdateEventType,那么只有当UpdateEventType事件到来时再回调onEvent方法。想象一下,有100次数据操作。但只有大概10个是更新事件,那我要过滤掉其他的90个操作,感觉会很多余,而且,如果onEvent中有耗时长的操作,还会阻塞其他事件的到来,但其他事件我也许根本不感兴趣,这里会有一些资源和性能上的浪费。所以不知道该组件有么有只订阅我感兴趣的事件,然后只有再我感兴趣的事件到来时才出发onEvent方法。
最近在考虑把mysql-binlog-connector-java这个组件用到工作中,然后有了以上两点疑问,麻烦老师解答下。
更新下,关于第二个问题,我查到了这个组件的文档,发现只需要自定义一个EventDeserializer,比如
EventDeserializer eventDeserializer = new EventDeserializer();
eventDeserializer.setEventDataDeserializer(EventType.EXT_DELETE_ROWS,
new NullEventDataDeserializer());
以上代码代表的意思是对于DELET事件不会进行反序列化,自然不会触发onEvent事假,所以麻烦老师回答第一个问题就可以了。
1回答
-
同学你好:
是的,OnEvent 是对 Binlog 日志的投递操作,不能做很多耗时的工作,如果有耗时的工作,可以放到异步任务里面去执行。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
312019-08-30
相似问题
回答 1
回答 1