请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有关java如何获得binlog的event的

如题
java是如何获得MySQLbinlog的EVENT的呢?
是通过监控binlog日志变动??还是MySQL本身就提供这种服务,我们只要订阅就好??
个人感觉应该是后者,那如果是后者,在mysql-binlog-connector-java这个包中订阅实现是在哪里??mysql是用C语言写的吧?C的服务java如何订阅呢?

其实我感觉我问的问题都散了,其实我想问对于一些技术黑箱,老师您是如何一步一步去了解的?是否有快速定位到自己关心问题的关键节点的方法论,或者说您这么多年经验的一个总结呢??

希望老师能推荐几本关于MySQL面向应用讲的深入一点的书,或者你觉得值得推荐的MySQL的书

正在回答 回答被采纳积分+3

插入代码

1回答

张勤一 2019-03-14 23:49:17

同学你好:

    MySQL 的 Binlog 是基于 MySQL 的 Master/Slave 协议,主从之间的数据同步就是依赖于 Binlog。而我们的 ad-search 之所以能实现监听 Binlog,则是把自己 “伪装”为 MySQL Slave。这是通过 mysql-binlog-connector-java 这个开源工具实现的。

    Binlog 其实就是 MySQL 记录你对数据表的改动操作,然后记录下来形成的二进制文件。 mysql-binlog-connector-java 就是去监听这些二进制文件的变化。这个监听与被监听的实现则是 MySQL 与 mysql-binlog-connector-java 工具都需要去做的(MySQL 定好协议标准,mysql-binlog-connector-java 工具按照协议来实现对应的接口)。

    关于 C 语言怎么做,这个不必要深究,现实中是不会这样做的。

    我觉得学习这方面的话,首先你需要去了解下什么是 Binlog,它的作用是什么,通过解析它我们能够干什么等等。最好是先学习下 MySQL 相关的基础知识,再去理解下 MySQL 的原理。可以阅读下 《高性能 MySQL》这本书,原理结合实践,但是有一定的阅读门槛。


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

6 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信