Canal采集实现mysql动态监控、数据采集,并将数据发送到kafka

本文介绍了如何通过Canal搭建监控MySQL的系统,首先需要在MySQL开启binLog日志,然后配置Canal客户端,利用Java解析binlog日志,并将这些日志发送到Kafka进行进一步处理。
摘要由CSDN通过智能技术生成

Canal采集程序搭建

使用java语言将canal中的binlog日志解析,并写入到Kafka中

mysql开启binLog日志

  1. 使用vi打开 /etc/my.cnf
  2. 添加以下配置
#配置binlog日志的存放路径为/var/lib/mysql目录,文件以mysql-bin开头 
log-bin=/var/lib/mysql/mysql-bin 
# 配置mysql中每一行记录的变化都会详细记录下来 
binlog-format=ROW 
# 配置当前机器器的服务ID(如果是mysql集群,不能重复) 
server_id=1

3.重启mysql

service mysqld restart

4.进入Mysql客户端输入

show variables like '%log_bin%';

±--------------------------------±-------------------------------+
| Variable_name | Value |
±--------------------------------±-------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/mysql-bin |
| log_bin_index | /var/lib/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
±--------------------------------±-------------------------------+

编写canal客户端

导入pom依赖

 <dependencies>
        <dependency>
            <groupId>com.alibaba.otter</groupId>
            <artifactId>canal.client</artifactId>
            <version>1.0.24</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.11</artifactId>
            <version>0.9.0.1</version>
        </dependency>

        <!--对象和json 互相转换的-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.44</version>
        </dependency>
    </dependencies>

二、编写GlobalConfigUtil工具类,读取application.properties配置文件

步骤

  1. 创建 GlobalConfigUtil 工具类,读取 application.properties 中的 canal 和 kafka 配置
  2. 添加main方法,测试是否能正确读取配置

GlobalConfigUtil.java

import java.util.ResourceBundle;

/**
 * 配置文件的公共类
 */
public class GlobalConfigUtil {

    //读取application.properties文件
    private static ResourceBundle resourceBundle = ResourceBundle.getBundle("applicatio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值