我是靠谱客的博主 真实云朵,最近开发中收集的这篇文章主要介绍springboot集成canal,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

canal,根据官方的解释,也就是用于同步数据库的增量数据到其他的存储应用

作用:

不需要在修改数据库的数据后自己手动进行redis中的数据进行同步操作

可以通过将数据库的数据同步到其他的存储应用,达到提高性能的作用

如:将本需要访问mysql的数据,同步修改到redis中,让更多的访问直接访问到redis,减少访问mysql数据库,从而达到提高性能的作用。

原理:

MySQL有主从机制(读写分离,需要开启bin-log模式,主节点会把写操作记录到一个文件,后续会把数据库同步到从节点),canal则伪装成从节点,从主节点获取到一份写操作记录,然后再进行同步到其他地方(redis,es,mongoDB等)

需要去官网下载canal并安装

1、canal的start依赖


<dependency>
<groupId>top.javatool</groupId>
<artifactId>canal-spring-boot-starter</artifactId>
<version>1.2.1-RELEASE</version>
</dependency>

2、配置

canal:
server: Canal服务部署的地址:11111
destination: example
logging:
level:
root: info
top:
javatool:
canal:
client:
client:
AbstractCanalClient: error

3、添加Handler

@Slf4j
@Component
@CanalTable(value = "表名")
public class OrderaInfoHandler implements EntryHandler<T> {//T为自定义接收封装的类型
@Override
public void insert(T t) {
log.info("当有数据插入的时候会触发这个方法);
}
@Override
public void update(T before, T after) {
log.info("当有数据更新的时候会触发这个方法);
}
@Override
public void delete(T t) {
log.info("当有数据删除的时候会触发这个方法);
}
}

4、对应的接收数据的类,需要用@Table(name="表名")指定表名,以及@Column(name="列名")指定属性对应的列名。

注意:接收的类型不能是基本数据类型。

最后

以上就是真实云朵为你收集整理的springboot集成canal的全部内容,希望文章能够帮你解决springboot集成canal所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部