关于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回答

张勤一

2019-08-30

同学你好:

    是的,OnEvent 是对 Binlog 日志的投递操作,不能做很多耗时的工作,如果有耗时的工作,可以放到异步任务里面去执行。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

3
1
慕娘5223032
好的,我明白了,多谢老师~
2019-08-30
共1条回复

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程