🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### Canal 阿里开源中间件:[https://github.com/alibaba/canal](https://github.com/alibaba/canal) 原理: 1.canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 2.mysql master收到dump请求,开始推送binary log给slave\(也就是canal\) 3.canal解析binary log对象\(原始为byte流\) #### 总结 1.支持集群模式\(需要zookeeper支持\) 2.canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,建议配置binlog模式为row; 3.canal的原理是模拟自己为mysql slave,所以这里一定需要做为mysql slave的相关权限; 4.可以监控到所有DDL/DML语句,如INSERT/DELETE/UPDATE/CREATE TABEL/ALTER等; DML/DDL说明: DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Language):是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db\_owner或db\_securityadmin等人员才有权力执行DCL