架构介绍
设计理念
为了解决数据源多样性问题,InLong-agent 将多种数据源抽象成统一的source概念,并抽象出sink来对数据进行写入。当需要接入一个新的数据源的时候,只需要配置好数据源的格式与读取参数便能跟做到高效读取。
InLong Agent本身作为数据采集框架,采用channel + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个框架中。
- Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给channel。
- Channel:Channel用于连接reader和writer,作为两者的数据传输通道,并起到了数据的写入读取监控作用
3.1 文件采集
文件采集包含如下功能:
这类数据是指通过SQL执行的方式 SQL正则分解,转化成多条SQL语句 分别执行SQL,拉取数据集,拉取过程需要注意对mysql本身的影响 执行周期,这种一般是定时执行
3.3 binlog 采集
这类采集通过配置mysql slave的方式,读取binlog,并还原数据 需要注意binlog读取的时候多线程解析,多线程解析的数据需要打上顺序标签 代码基于老版本的dbsync,主要的修改是将tdbus-sender的发送改为推送到agent-channel的方式做融合