欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?binLog日志監(jiān)聽方式

 更新時間:2024年11月15日 10:40:51   作者:Liu.jie  
文章介紹了如何在Windows下開啟MySQL的binLog日志,并提供了一個Java代碼示例,演示如何監(jiān)聽指定的表并進(jìn)行處理邏輯

Java binLog日志監(jiān)聽

監(jiān)聽指定的表去做一些處理邏輯,首先是要開啟M有SQL的配置,然后再擼代碼。

一、Windows下開啟MySQL binLog日志

首先要開啟MySQL的BinLog 管理

show variables like '%log_bin%';

如果發(fā)現(xiàn)是OFF,打開mysql文件夾下面的my.ini,修改一下

如果不知道m(xù)y.ini 在哪里,打開【服務(wù)】-> 右擊屬性

拉到最后就可以看見my.ini,然后找到文件后

[mysqld] 下面加

# 開啟bin-log
log-bin=mysql-bin # 開啟binlog功能
binlog-format=ROW # 設(shè)置binlog格式
server_id=1 # 設(shè)置服務(wù)ID號

然后 重啟服務(wù),就會發(fā)現(xiàn)已經(jīng)起好了

二、Java代碼示例演示

首先引入Maven包

 <dependency>
     <groupId>com.github.shyiko</groupId>
     <artifactId>mysql-binlog-connector-java</artifactId>
     <version>0.21.0</version>
 </dependency>

上代碼

import cn.hutool.core.collection.ListUtil;
import com.alibaba.fastjson2.JSON;
import com.github.shyiko.mysql.binlog.BinaryLogClient;
import com.github.shyiko.mysql.binlog.event.*;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.web.controller.websocket.AlarmWebSocket;
import com.ruoyi.web.service.IWidfireDataService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.List;
import java.util.Map;


/**
 * mysql bin log 日志監(jiān)聽
 */
@Component
@Slf4j
public class MySQLBinaryLogConfig {


    public static IWidfireDataService widfireDataService;

    @Autowired
    public void setSenderService(IWidfireDataService widfireDataService){
        MySQLBinaryLogConfig.widfireDataService= widfireDataService;
    }


    private static final List<String> TABLE_NAME = ListUtil.of("alart_ai"); //數(shù)據(jù)庫表,需要監(jiān)聽的表


    {
        System.out.println("啟動監(jiān)聽:啟動中");
        getThread().start();
        System.out.println("啟動監(jiān)聽:成功");
    }

    public Thread getThread() {
        BinaryLogClient client = new BinaryLogClient("127.0.0.1", 3306, "root", "123456");
        client.setServerId(1);
        return new Thread(() -> {
            client.registerEventListener(event -> {
                String table =null;
                final EventData data = event.getData();
                if (data instanceof TableMapEventData) {
                    TableMapEventData tableMapEventData = (TableMapEventData) data;
                    String database = tableMapEventData.getDatabase();
                    table = tableMapEventData.getTable();

                    log.info("數(shù)據(jù)表:{},data:{},database:{}",table,data.toString(),database);
                }else if (data instanceof UpdateRowsEventData) {
                    UpdateRowsEventData tableMapEventData = (UpdateRowsEventData) data;

                    System.out.println("更新:");
                } else if (data instanceof WriteRowsEventData) {
                    System.out.println("添加:");
                } else if (data instanceof DeleteRowsEventData) {
                    System.out.println("刪除:");
                }

                if(StringUtils.isNotEmpty(table) && TABLE_NAME.contains(table)){
                    log.info("<<<<<< 收到MySQL binLog 日志推送 >>>>>>>");
                    //開始編寫具體的邏輯
                    
                }

            });
            try {
                client.connect();
            } catch (IOException e) {
                e.printStackTrace();
            }
        });

    }
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot主程序類注解配置過程圖解

    Springboot主程序類注解配置過程圖解

    這篇文章主要介紹了Springboot主程序類注解配置過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Java中Exception和Error的區(qū)別詳解

    Java中Exception和Error的區(qū)別詳解

    在 Java 開發(fā)面試中,Exception 和 Error 的區(qū)別是一個經(jīng)典問題,這個問題不僅考察我們對 Java 異常處理機制的理解,還考察我們在實際開發(fā)中如何處理異常的能力,所以本文主要給大家介紹一下Java中Exception和Error的區(qū)別,需要的朋友可以參考下
    2025-04-04
  • 一文搞懂String的intern()方法

    一文搞懂String的intern()方法

    這篇文章主要給大家介紹String的intern()方法,文中有詳細(xì)的代碼示例,感興趣的小伙伴讓我們一起來看看這究竟是個什么玩意
    2023-06-06
  • Spring AOP 與代理的概念與使用

    Spring AOP 與代理的概念與使用

    大家知道我現(xiàn)在還是一個 CRUD 崽,平時用 AOP 也是 CV 大法。最近痛定思痛,決定研究一下 Spring AOP 的原理。 這里寫一篇文章總結(jié)一下。主要介紹 Java 中 AOP 的實現(xiàn)原理,最后以兩個簡單的示例來收尾。
    2020-10-10
  • Java 關(guān)于eclipse導(dǎo)入項目發(fā)生的問題及解決方法(推薦)

    Java 關(guān)于eclipse導(dǎo)入項目發(fā)生的問題及解決方法(推薦)

    下面小編就為大家分享一篇Java 關(guān)于eclipse導(dǎo)入項目發(fā)生的問題及解決方法(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • IDEA中的.iml文件和.idea文件夾使用方式

    IDEA中的.iml文件和.idea文件夾使用方式

    這篇文章主要介紹了IDEA中的.iml文件和.idea文件夾使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java 2d畫圖示例分享(用java畫圖)

    java 2d畫圖示例分享(用java畫圖)

    這篇文章主要介紹了java 2D畫圖示例(用java畫圖),需要的朋友可以參考下
    2014-04-04
  • 基于SpringBoot實現(xiàn)驗證碼功能(兩種驗證碼方式)

    基于SpringBoot實現(xiàn)驗證碼功能(兩種驗證碼方式)

    這篇文章主要介紹了基于SpringBoot實現(xiàn)驗證碼功能,今天我們介紹的是兩種主流的驗證碼,一種就是進(jìn)行計算的驗證碼,另外一種就是不需要計算,直接輸入的驗證碼,需要的朋友可以參考下
    2024-08-08
  • java?NIO實現(xiàn)簡單聊天程序

    java?NIO實現(xiàn)簡單聊天程序

    這篇文章主要為大家詳細(xì)介紹了java?NIO實現(xiàn)簡單聊天程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • SpringBoot項目jar發(fā)布后如何獲取jar包所在目錄路徑

    SpringBoot項目jar發(fā)布后如何獲取jar包所在目錄路徑

    這篇文章主要介紹了SpringBoot項目jar發(fā)布后如何獲取jar包所在目錄路徑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論