# canal-test **Repository Path**: freefactor/canal-test ## Basic Information - **Project Name**: canal-test - **Description**: canal-test - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2025-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: test ## README # canal-test `canal-test` 是一个基于 Spring Boot 的项目,用于测试和演示如何使用 [Alibaba Canal](https://github.com/alibaba/canal) 来订阅和消费 MySQL 数据库的增量日志(binlog)。该项目提供了一个简单的示例,展示如何连接 Canal Server 并监听数据库变更事件。 ## 功能特性 - 使用 Spring Boot 快速搭建应用 - 集成 Alibaba Canal 客户端,实时订阅数据库变更 - 支持解析并打印 insert、update 和 delete 操作的 binlog 数据 - 提供基础的事务控制和错误处理机制 ## 项目结构 ``` canal-test/ ├── pom.xml ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── tech/ │ │ │ └── ai/ │ │ │ └── canal_test/ │ │ │ ├── CanalTestApplication.java │ │ │ └── deploy/ │ │ │ └── CanalClient.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── tech/ │ └── ai/ │ └── canal_test/ │ ├── CanalTestApplicationTests.java │ └── Test.java ├── mvnw ├── mvnw.cmd ├── .gitignore └── .gitattributes ``` ## 快速开始 ### 环境要求 - Java 8 或更高版本 - Maven 3.x - 已安装并运行的 [Canal Server](https://github.com/alibaba/canal) ### 安装与运行 1. **克隆项目** ```bash git clone https://gitee.com/freefactor/canal-test.git cd canal-test ``` 2. **构建项目** ```bash ./mvnw clean package ``` 3. **运行应用** ```bash java -jar target/canal-test.jar ``` 或者直接运行主类: ```bash ./mvnw spring-boot:run ``` 4. **配置 Canal Server** 确保你已经正确配置并启动了 Canal Server,并且 MySQL 的 binlog 已启用。 修改 `CanalClient.java` 中的连接信息以匹配你的 Canal Server 配置: ```java CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111), "example", "", ""); ``` ## 使用说明 - 应用启动后,`CanalClient` 会自动连接到 Canal Server 并开始监听数据库变更。 - 所有变更事件(insert、update、delete)都会被解析并打印到控制台。 - 如果没有获取到数据,程序会每两秒重试一次。 ## 示例输出 当数据库发生变更时,控制台将输出类似以下内容: ``` ================》 binlog[mysql-bin.000001:1234] , name[test_db,test_table] , eventType : INSERT id : 1 update=true name : John Doe update=true ``` ## 贡献指南 欢迎贡献代码或提出问题。请遵循以下步骤: 1. Fork 本仓库 2. 创建新分支 (`git checkout -b feature/new-feature`) 3. 提交更改 (`git commit -am 'Add new feature'`) 4. 推送分支 (`git push origin feature/new-feature`) 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。