阿里巴巴数据同步组建canal的客户端封装,与spring无缝衔接,方便开发
阿里巴巴canal是数据库mysql同步的组件
原理相对比较简单: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议,这样canal server相当于模拟mysql数据库Master的Slave
<!--定义一个处理同步的处理类-->
<bean id="globalCanalInvoke" class="com.xxx.canal.client.GlobalCanalInvoke"/>
<!--canal客户端配置-->
<config:canal-config
id="singleCanalClient"
destination="example"
fetchSize="1000"
host="localhost:2181" hostType="zkCluster">
<!--
id:配置id
destination:扫描的目录。必须与canal server 配置文件里的匹配
fetchSize:代表每次查询1000条同步记录
host: localhost:2181代表zookeeper的地址
-->
<!-- 处理所有库的所有表IUD-->
<config:globalInvoke ref="globalCanalInvoke"/>
<config:tableInvoke>
<!-- 指定数据库database,和表tableName-->
<config:invoke database="testDB" tableName="test_table">
<config:bean ref="dictIndicatorSyncInvoke"/>
</config:invoke>
</config:tableInvoke>
</config:canal-config>