Databus调研踩坑记录

简介:

Databus是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。由LinkedIn于2013年开源。Databus通过挖掘数据库日志的方式,将数据库变更实时、可靠的从数据库拉取出来,业务可以通过定制化client实时获取变更并进行其他业务逻辑。

现实期望:

计划基于binlog同步,DB到DB,DB到es的管道,实现业务层面上的数据解耦.

以下是前期调研接触到的一些安装、测试环节涉及的一些流程

以下是简单脱敏后的草图,欢迎大家留言指出问题点:

下面是安装调试具体遇到的一些错误情况

错误1:

解决方式:

下载一个ojdbc6-11.2.0.2.0.jar的jar包放到/Users/wenba/Desktop/tools/databus/databus/sandbox-repo/com/oracle/ojdbc6/11.2.0.2.0/目录下。

错误2:

错误3

解决:数据库名字 表结构一定要和实际对应

source-person.json

错误4 多个端口监控报9001端口冲突:

databus2-example/databus2-example-client-pkg/conf/client_person.properties

databus2-example/databus2-example-client-pkg/conf/client_user.properties

剩下的模仿person example新建就可以了, 具体错误见:https://github.com/linkedin/databus/issues/26

错误5 安装mysql依赖拓展包

build.gradle中:

编写业务逻辑

获取操作事件

一步步再监控一张表数据源端:

第一步:

databus2-example/databus2-example-relay-pkg/conf/下面创建一个source源

第二步:

databus2-example/databus2-example-relay-pkg/schemas_registry下创建个表字段定义。把新加的文件名加到 index.schemas_registry

第三步:

databus2-example/databus2-example-relay-pkg/script下创建启动脚本,脚本中的涉及到的source_name都要改成你新加的这个包名。

第四步(代码部分):

databus2-example/databus2-example-relay/src/main/java/com/linkedin/databus/relay/example/下新创建启动类。将包名、配置json改成新创建的

客户端:

第六步:

databus2-example/databus2-example-client-pkg/conf/下新建配置文件,修改不同配置

第七步:

databus2-example/databus2-example-client-pkg/script/start-user-client.sh下再新建个启动脚本,改成新的source_name

第八步(代码部分):

databus2-example/databus2-example-client/src/main/java/com/linkedin/databus/client/example/ 新建client监听类,将里面的包名、监听端口改成数据源端设置的端口号。注册消费类

第九步(代码部分)

databus2-example/databus2-example-client/src/main/java/com/linkedin/databus/client/example/ 新建消费类,主要代码在processEvent下。数据事件和源封装在DbusEvent和DbusEventDecoder对象中。

第十步(代码部分)

创建具体消费类,对数据进行处理

构建:

编译:

启动Relay:

启动Client:

测试:

希望大家以后工作中如果有机会用到,可以避免踩一些坑。

参考文档:https://blog.csdn.net/feng12345zi/article/details/80843554

https://www.jianshu.com/p/9df54eb1ec35

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181111G1FL5800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券