0717-7821348
欢乐彩票app下载

欢乐彩票app下载

您现在的位置: 首页 > 欢乐彩票app下载
数据的异构实战(一) 根据canal进行日志的订阅和转化
2019-12-14 01:15:16

什么是数据的异构处理。简单说便是为了满意咱们事务的扩展性,将数据从某种特定的格局转换到新的数据格局中来。

为什么会有这种需求数据的异构实战(一) 根据canal进行日志的订阅和转化呈现呢?

传统的企业中,首要都是将数据存储在了联系型数据库中,例如说MySQL这种数据库,可是为了满意需求的扩展,查询的维度会不断地添加,那么这个时分咱们就需求做数据的异构处理了。

常见的数据异构有哪些?

例如MySQL数据转储到Redis,MySQL数据转储到es等等,也是由于这种数据异构的场景开端呈现,陆陆续续有了许多中间件在商场中冒出,例如说rocketMq,kafka,canal这种组件。

下边有一张通俗易懂的数据异构进程图:

canal进行数据同步

首要,咱们需求正确地翻开canal服务器去订阅binlog日志。

关于binlog日志检查常用的几条指令如下

留意binlog日志格局要求为r数据的异构实战(一) 根据canal进行日志的订阅和转化ow格局:

ROW格密局日志的特色

记载sql句子和每个字段改变的前后状况,能够清楚每行数据的改变前史,占用较多的空间,不会记载对数据没有影响的sql,例如说select句子就不会记载。能够使mysqlbinlog东西去检查内部信息。

STATEMENT形式的日志内容

STATEMENT格局的日志就和它本身的命名有点相似,仅仅单独地记载了sql的内容,可是没有记载上下文信息,在数据会UI福的时分可能会导致数据丢掉。

MIX形式形式的日志内容

这种形式的日志内容比较灵敏,当遇到了表结构改变的时分,就会记载为statement形式,假如遇到了数据修正的话就会变为row形式。

怎么装备canal的相关信息?

比较简单,首要经过下载好canal的装置包,然后咱们需求在canal的装备文件上边做一些四肢:

发动咱们的canal程序,然后检查日志,假如显现下边这些内容就表明发动成功了:

ps:关于canal入门装置的教程网上有许多,这儿我就不做过多的论述了。

canal服务器建立起来之后,咱们便进入了java端的程序编码部分:

接着再来检查咱们的客户端代码,客户端中咱们需求经过java程序获取canal服务器的衔接,然后进入监听binlog日志的状况数据的异构实战(一) 根据canal进行日志的订阅和转化。

能够参阅下边的程序代码:

本地监听到了canal的example文件夹中装数据的异构实战(一) 根据canal进行日志的订阅和转化备的监听的日志信息之后,就会主动将该日志里边记载的数据进行打印读取。

那么这个时分咱们还需求做多一步处理,那便是将坚听到的数据转换为可辨认的目标,然后进行目标搬运处理。

其实光是链接获取到canal的binlog日志并不困难,接着咱们还需求将binlog日志进行一致的封装处理,需求编写一个特定的处理器将日志的内容转换为咱们常用的DTO类:

下边这个东西类能够学习一下:

接着是canal的中心处理器,首要的意图是将bi数据的异构实战(一) 根据canal进行日志的订阅和转化nlog转换为咱们所期望的实体类目标,该类现在首要考虑兼容的数据类型为现在8种,比较有限,假如读者后续在实践开发中还遇到某些特别的数据类型能够手动添加到map中。

ps: t_type表是一张咱们用于做测验时分运用的表,这儿咱们能够依据自己实践的事务需求定制不同的实体类目标

现在咱们现已能够经过binlog转换为实体类了,那么接下来便是怎么将实体类做额定的传输和处理了。数据的传输咱们通常会凭借mq这类型的中间件来进行操作,关于这部分的内容我会在后续的文章中做具体的输出。

最终,我自己是一名从事了多年开发的JAVA老程序员,今年年初我花了一个月整理了一份最适合2019年学习的java学习干货,能够送给每一位喜爱java的小伙伴,想要获取的能够重视我的头条号并在后台私信我:java,即可免费获取。


作者:Java知音

来历:微信大众号