简介:
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
领取专属 10元无门槛券
私享最新 技术干货