Maxwell的使用
1、Maxwell的概述
1.1 官网简介
This is Maxwell’s daemon, an application that reads MySQL binlogs and writes row updates as JSON to Kafka, Kinesis, or other streaming platforms. Maxwell has low operational overhead, requiring nothing but mysql and a place to write to. Its common use cases include ETL, cache building/expiring, metrics collection, search indexing and inter-service communication. Maxwell gives you some of the benefits of event sourcing without having to re-architect your entire platform. (官网简介)
Maxwell 主要用于实时数据同步
1.2 运行原理
1.2.1 MySQL的主从复制
当数据量和并发量特别高时,单个节点的MySQL就难以承受并发量。因此我们就需要对单个节点MySQL进行扩展,形成MySQL集群。MySQL集群中主节点为Master,从节点为slave。
这里进行主从复制后,我们就可以将读和写进行分离,master主库用于写,slave从库用于读,有效解决高并发。并且进行数据的多个备份,保障了数据的安全。
相应细节:
① Master主库将改变记录,写到二进制日志(binary log)中;
② Slave从库向mysql master发送dump协议,将master主库的binary log events拷贝到它的中继日志(relay log);
③ Slave从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。
1.2.2 Maxwell工作原理
Maxwell的工作原理很简单,就是把自己伪装成MySQL的一个slave,然后以slave的身份假装从MySQL(master)复制数据。