让 canal 成为 spring boot 组件

7 篇文章 0 订阅
4 篇文章 0 订阅

canal 集成为 springboot 组件


想法

随着 spring boot 框架的逐渐流行,越来越多的 spring boot 组件随之诞生,今天阿导带大家一起来实现 canal 集成为 spring boot 的组件的详细过程。
我们大佬需要我们做一个数据迁移和数据同步的业务,我就想着将其封装成 springboot 组件,这是写这个组件的初衷。
也许还有小伙伴没接触过 canal ,我其实也刚接触两天左右,想了解的伙伴请前往官网文档
我就不介绍这个 canal 了,因为我也刚看不久,我的见解都会在代码展示,下面来介绍我的思路。

思路

  • 配置构思和书写

  • 连接规则制定

  • 书写 canal 客户端

  • 监听 canal 客户端从 canal 服务端推送的消息,并处理。

  • 处理消息机制,这里使用了集成接口和注解两种方式

  • 测试类去测试所写的组件


实现


使用

组件写好了,那么怎么来使用呢?打个比方,锄头做好了,如何日当午才是关键,哈哈…
首先我们来看看通过 @ConfigurationProperties 注解的 CanalConfig 这个类,能配置的内容在 Instance 这个内部静态类里面,目前支持如下配置:

           
           #是否是集群模式
           canal.client.instances.${wwjd}.clusterEnabled=true
           canal.client.instances.${wwjd}.cluster-enabled=true
           
           #zookeeper 地址
           canal.client.instances.${wwjd}.zookeeperAddress=127.0.0.1:2181,127.1.1.1:2187
           canal.client.instances.${wwjd}.zookeeper-address=127.0.0.1:2181,127.1.1.1:2187
            
           #canal 服务器地址,默认是本地的环回地址
           canal.client.instances.${wwjd}.host=127.0.0.1
            
           #canal 服务设置的端口,默认 11111
           canal.client.instances.${wwjd}.port=11111

           #集群 设置的用户名
           canal.client.instances.${wwjd}.userName=root
           canal.client.instances.${wwjd}.user-name=root
    
           #集群 设置的密码
           canal.client.instances.${wwjd}.password=123456
    
            
           #批量从 canal 服务器获取数据的最多数目
           canal.client.instances.${wwjd}.batchSize=1000
           canal.client.instances.${wwjd}.batch-size=1000
    
           #是否有过滤规则
           canal.client.instances.${wwjd}.filter=.*\\..*
    
           #当错误发生时,重试次树
           canal.client.instances.${wwjd}.retryCount=20
           canal.client.instances.${wwjd}.retry-count=20
    
           #信息捕获心跳时间
           canal.client.instances.${wwjd}.acquireInterval=1000
           canal.client.instances.${wwjd}.acquire-interval=1000

            

####### 假若你所有的环境都搞定了,包括 mysql 开启 binlog 日志,canal 伪装从数据库连接到 mysql 等,然后配置信息都正确,那就开始正文了

启动服务,操作 db,观察数据,至于你想对这些数据干什么,只要不作奸犯科,那随你便了…

    ======================接口方式(修改表信息操作)==========================
    use dao;
    /* ApplicationName=IntelliJ IDEA 2018.1.2 */ ALTER TABLE user ADD age int DEFAULT 18 NOT NULL COMMENT '年龄'
    
    ======================================================
   
    ======================注解方式(修改表信息操作)==========================
    use dao;
    /* ApplicationName=IntelliJ IDEA 2018.1.2 */ ALTER TABLE user ADD age int DEFAULT 18 NOT NULL COMMENT '年龄'
    
    ======================================================
    ======================接口方式(新增数据操作)==========================
    use dao;
    INSERT INTO user(id,name,age) VALUES('85','阿导','107');
    
    ======================================================
    ======================注解方式(新增数据操作)==========================
    use dao;
    INSERT INTO user(id,name,age) VALUES('85','阿导','107');
    
    ======================================================

感言

初识 canal ,不足之处,还望多多指正和批评,阿导在此感谢。

需要云服务器的不要错过优惠

阿里云低价购买云服务,值得一看

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: b'canal-spring-boot-starter' 是一个用于在 Spring Boot 应用中集成 Canal 数据库日志订阅和消费功能的起始器。它可以帮助开发人员快速搭建 Canal 客户端并订阅对应的数据库操作日志。 ### 回答2: Canal-spring-boot-starter是一个基于Spring Boot框架的插件,用于实现CanalSpring Boot框架的整合。Canal是阿里巴巴开源的一款基于MySQL数据库增量日志解析工具,通过监听数据库中的binlog(二进制日志),实现对数据库的变更事件进行监听和捕捉,从而能够实现实时同步和分析数据库的变化。 Canal-spring-boot-starter将CanalSpring Boot框架整合在一起,可以让开发者通过简单的配置,轻松地实现对数据库变更事件的监听和处理,可以方便地实现数据同步、消息推送、数据分析等功能。同时,Canal-spring-boot-starter还提供了一些默认的配置,包括数据源、表名、过滤规则等,可以让开发者快速上手并开始使用。 Canal-spring-boot-starter的主要特点包括: 1. 便捷性:Canal-spring-boot-starter基于Spring Boot框架,可以方便地整合到Spring Boot应用中,并提供了默认配置,让开发者可以快速上手使用。 2. 功能强大:Canal-spring-boot-starter使用了Canal增量日志解析工具,可以实现对数据库变更事件的监听和捕捉,并支持多种操作类型的处理。 3. 高可用性:Canal-spring-boot-starter支持多节点的部署,可以实现数据同步的高可用性。 4. 易于扩展:Canal-spring-boot-starter提供了丰富的API和插件,可以方便地扩展和定制,满足不同场景下的需求。 总之,Canal-spring-boot-starter可以让开发者轻松地实现对数据库变更事件的监听和处理,提高应用的数据处理能力和效率。 ### 回答3: canal-spring-boot-starter是一个基于阿里巴巴canal客户端的Spring Boot Starter。它使得在使用Spring Boot和canal进行MySQL数据同步变得更加简单和方便。 可以将canal-spring-boot-starter集成到Spring Boot应用程序中,以便实时获取MySQL数据库更改信息。当MySQL数据库中的数据发生变化时,canal-spring-boot-starter会自动检查并发送变更事件。您可以使用canal的订阅功能订阅可以使用canal的订阅功能订阅这些事件并对它们进行相应处理。 canal-spring-boot-starter提供了一些方便的配置选项,例如: 1. 配置canal的连接参数,例如MySQL服务器和端口号以及用户名和密码。 2. 配置订阅规则,例如您可以指定您所需的数据表和列来获取相关的变更事件。 3. 在您的应用程序中定义用于处理变更事件的监听器。 canal-spring-boot-starter提供了一种可靠的方法来处理MySQL数据库中的更改。通过使用canal-spring-boot-starter,您可以很容易地将canal集成到您的Spring Boot应用程序中,以获得实时的MySQL数据库更改信息。这使得开发人员能够更快地响应数据库更改并进行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值