最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2024年11月15日 10:40:51   作者:Liu.jie  
文章介紹了如何在Windows下開啟MySQL的binLog日志,并提供了一個(gè)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é)

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

相關(guān)文章

  • Spring?Boot指標(biāo)監(jiān)控及日志管理示例詳解

    Spring?Boot指標(biāo)監(jiān)控及日志管理示例詳解

    Spring Boot Actuator可以幫助程序員監(jiān)控和管理SpringBoot應(yīng)用,比如健康檢查、內(nèi)存使用情況統(tǒng)計(jì)、線程使用情況統(tǒng)計(jì)等,這篇文章主要介紹了Spring?Boot指標(biāo)監(jiān)控及日志管理,需要的朋友可以參考下
    2023-11-11
  • java中String、StringBuffer與StringBuilder的區(qū)別

    java中String、StringBuffer與StringBuilder的區(qū)別

    這篇文章主要介紹了java 中String和StringBuffer與StringBuilder的區(qū)別,在開發(fā)過程中經(jīng)常會用到String這個(gè)類進(jìn)行操作。需要的朋友可以收藏下,方便下次瀏覽觀看
    2021-12-12
  • eclipse的web項(xiàng)目實(shí)現(xiàn)Javaweb購物車的方法

    eclipse的web項(xiàng)目實(shí)現(xiàn)Javaweb購物車的方法

    這篇文章主要介紹了eclipse的web項(xiàng)目實(shí)現(xiàn)Javaweb購物車的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 解決springcloud阿里云OSS文件訪問跨域問題的實(shí)現(xiàn)

    解決springcloud阿里云OSS文件訪問跨域問題的實(shí)現(xiàn)

    本文主要介紹了解決springcloud阿里云OSS文件訪問跨域問題的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • SpringBoot+React中雙token實(shí)現(xiàn)無感刷新

    SpringBoot+React中雙token實(shí)現(xiàn)無感刷新

    本文主要介紹了基于AccessToken和RefreshToken的雙Token無感刷新機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-10-10
  • Java執(zhí)行Linux命令簡單代碼舉例

    Java執(zhí)行Linux命令簡單代碼舉例

    這篇文章主要給大家介紹了關(guān)于Java執(zhí)行Linux命令的相關(guān)資料,在開發(fā)的過程中要善于利用JAVA面向?qū)ο缶幊痰膬?yōu)勢,與Linux/Unix命令或Shell腳本的優(yōu)勢,并將二者相結(jié)合,需要的朋友可以參考下
    2023-12-12
  • MySQL數(shù)據(jù)庫基礎(chǔ)與庫的操作大全

    MySQL數(shù)據(jù)庫基礎(chǔ)與庫的操作大全

    本文介紹MySQL安裝與服務(wù)啟動方式,解析數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫、表的關(guān)系,概述SQL語言分類(DDL/DML/DCL)及作用,并詳解數(shù)據(jù)庫創(chuàng)建、查看、修改、刪除操作,強(qiáng)調(diào)字符集設(shè)置和刪除數(shù)據(jù)庫的風(fēng)險(xiǎn),感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • shiro之INI配置詳解

    shiro之INI配置詳解

    這篇文章主要為大家詳細(xì)介紹了shiro之INI配置的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Ubuntu 使用Jni開發(fā)實(shí)例詳解

    Ubuntu 使用Jni開發(fā)實(shí)例詳解

    這篇文章主要介紹了Ubuntu 使用Jni開發(fā)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • java反射_改變private中的變量及方法的簡單實(shí)例

    java反射_改變private中的變量及方法的簡單實(shí)例

    下面小編就為大家?guī)硪黄猨ava反射_改變private中的變量及方法的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06

最新評論

炉霍县| 太保市| 白山市| 安顺市| 抚顺市| 丰城市| 信宜市| 青神县| 天水市| 江山市| 石台县| 巴楚县| 元阳县| 崇仁县| 湟源县| 周口市| 义乌市| 广宁县| 独山县| 浦江县| 鹿邑县| 韶关市| 汽车| 洪雅县| 绥芬河市| 刚察县| 邮箱| 邓州市| 云安县| 周至县| 扎鲁特旗| 镇江市| 沐川县| 明水县| 阜康市| 鄂伦春自治旗| 霍邱县| 徐汇区| 高尔夫| 察雅县| 凤凰县|