目录
前言
- 项目模块
BinlogMiddleware
1、binlog中间件,负责解析binlog,把变动的数据以json形式发送到kafka队列。
KafkaMiddleware
2、kafka中间件,负责消费kafka队列中的Message,把数据写入Elasticsearch中。
- 基础服务
(1)Mysql
(2)Kafka(用于存放mysql变动消息,存放于Kafka队列)
(3)Elasticsearch
- 项目源码
1、开启mysql的binlog
(1)binlog简介
binlog,即二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中;
它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制(主从数据库的复制)。
(2)Binary Log记录方式
Row Level
Binary Log会记录成每一行数据被修改的形式,然后在Slave端再对相同的数据进行修改。
如果修改了表的结构,那么binlog日志记录的是重新创建表,在插入字段、update等操作语句,而不是的alter的动作。
优点:在Row Level模式下,Binnary Log可以不记录执行的Query语句的上下文相关信息,只要记录哪一行修改了,修改成什么样子。Row Level会详细的记录下每一行数据的修改细节,而且不会出现某个特定情况下的存储过程,或Function,以及Trigger的调用和触发无法被正确复制问题。
缺点:产生大量的日志