# binlog-listener **Repository Path**: cocoknight/binlog-listener ## Basic Information - **Project Name**: binlog-listener - **Description**: binlog-listener 监听mysql binlog数据变更,并使用消息队列接收和消费 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-29 - **Last Updated**: 2025-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README The project is a Spring Boot application that listens to MySQL binary logs (binlogs) and processes them for further usage, such as synchronizing data changes to other systems like Redis or Elasticsearch. Below is the README.md tailored for this project: --- # Binlog Listener Application ## 项目简介 这是一个基于Spring Boot的MySQL二进制日志监听应用。它能够捕获MySQL数据库的数据变更事件,并将这些变更以消息的形式发送到Redis流中,以便其他服务可以消费这些变更事件。 ## 主要功能 - 监听MySQL的二进制日志事件。 - 将数据变更事件序列化为Java对象。 - 使用Redis流进行消息传递。 - 支持将数据变更同步到Elasticsearch。 ## 项目结构 - **BinlogListenerApplication.java** - 应用的主类,用于启动Spring Boot应用。 - **BinLogConstants.java** - 存储MySQL连接配置和相关Bean定义。 - **BinLogItem.java** - 表示一次数据变更的Java对象。 - **BinLogProgress.java** - 记录当前处理的binlog文件名和位置。 - **BinLogServer.java** - 启动并管理binlog客户端。 - **MysqlBinLogListener.java** - 实现`BinaryLogClient.EventListener`接口,用于处理binlog事件。 - **RedisStreamConsumer.java** - 消费Redis流中的binlog事件。 - **EsConfig.java** - Elasticsearch相关的配置类。 - **MybatisPlusConfig.java** - MyBatis Plus的配置类。 - **RedisConfig.java** - Redis的配置类。 - **application.yml** - 应用的主要配置文件。 ## 环境要求 - Java 8 或更高版本 - MySQL 5.7 或更高版本(启用binlog) - Redis 5.0 或更高版本 - Elasticsearch 7.x(可选) ## 安装与配置 1. 克隆仓库到本地: ```bash git clone ``` 2. 修改`application.yml`文件中的MySQL、Redis和Elasticsearch配置。 3. 构建项目: ```bash mvn clean package ``` 4. 运行应用: ```bash java -jar target/binlog-listener-application.jar ``` ## 使用说明 - 应用启动后会自动开始监听MySQL的binlog事件。 - 数据变更会被封装成`BinLogItem`对象,并通过Redis流发布。 - 可以通过实现自定义的Redis流消费者来处理这些事件。 ## 贡献指南 - Fork本仓库。 - 创建新的分支并进行修改。 - 提交PR并等待审核。 ## 许可证 本项目采用MIT许可证。详情请查看LICENSE文件。 --- 以上README提供了项目的概述、主要功能、环境要求、安装步骤以及使用说明,适合开发者快速上手和贡献代码。