Databus 深入学习

Databus 深入学习一、关于databusLinkedIn于2月26日开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据源上捕获数据,当下LinkedIn只开源了Oracle上的连接器。Databus作为LinkedIn生态系统中的一致性保障组件,在低延时的情况下仍然具有高有效性;而其最大的特点莫过于无限制恢复能力及丰富的数据深度处理功能。二、基于da…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、关于databus

        LinkedIn于2月26日开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据源上捕获数据,当下LinkedIn只开源了Oracle上的连接器。Databus作为LinkedIn生态系统中的一致性保障组件,在低延时的情况下仍然具有高有效性;而其最大的特点莫过于无限制恢复能力及丰富的数据深度处理功能。
 

二、基于databus的数据系统架构

        对数据系统对功能进行了有限的分割,传统的数据库被用来作简单的数据存储,有效的保证了数据一致性(包含事务);通过毫秒级的事件转发,可以按业务需求构建索引或多个数据副本,以支撑复杂的业务需求;保证顺序的数据变化事件日志为整个数据系统提供的不限制的数据恢复能力。

Databus 深入学习

Databus 深入学习

 

Databus Relays

1、捕获数据库行变化,在内存中打包为数据变化事件;

2、监听Clients的请求,将数据变化事件发送给Client。

Databus Clients

1、检查数据变化事件,并回调业务逻辑;

2、如挂掉,从databus bootstrap server读取挂掉后的所有数据变化事件;

3、新的client加入,先从databus bootstrapserver读取数据,之后变为处理最近的数据变化事件;

4、一个client可以处理全部的事件流,也可多个client分块处理事件流。

Databus Bootstrap Producers

1、bootstrap producer是一个特殊的client;

2、从relay接收新的数据变化事件;

3、把这些事件存储起来(如MYSQL);

4、存储的事件用于新client的加入,或都client挂掉后的恢复。

Databus Bootstrap Servers

1、监听client的请求,把存储的事件发送给client。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Databus提供如下功能:

来源独立:Databus支持多种数据来源的变更抓取,包括Oracle和MySQL。Oracle适配器在开源版本中有提供,MySQL适配器将在以后提供。
可扩展、高度可用:Databus能扩展到支持数千消费者和事务数据来源,同时保持高度可用性。
事务按序提交:Databus能保持来源数据库中的事务完整性,并按照事务分组和来源的提交顺寻交付变更事件。
低延迟、支持多种订阅机制:数据源变更完成后,Databus能在微秒级内将事务提交给消费者。同时,消费者使用Databus中的服务器端过滤功能,可以只获取自己需要的特定数据。
无限回溯:这是Databus最具创新性的组件之一,对消费者支持无限回溯能力。当消费者需要产生数据的完整拷贝时(比如新的搜索索引),它不会对主OLTP数据库产生任何额外负担,就可以达成目的。当消费者的数据大大落后于来源数据库时,也可以使用该功能。

 

Databus 深入学习

 

上图中介绍了Databus系统的构成,包括中继Relay、bootstrap服务和客户端库。Bootstrap服务中包括Bootstrap Producer和Bootstrap Server。快速变化的消费者直接从Relay中取事件。如果一个消费者的数据更新大幅落后,它要的数据就不在Relay的日志中,而是在Bootstrap Producer里面,提交给它的,将会是自消费者上次处理变更之后的所有数据变更快照。

Databus Relay中继的功能主要包括:

1、从Databus来源读取变更行,并在内存缓存内将其序列化为Databus变更事件
2、监听来自Databus客户端(包括Bootstrap Producer)的请求,并传输新的Databus数据变更事件

Databus客户端的功能主要包括:

1、检查Relay上新的数据变更事件,并执行特定业务逻辑的回调
2、如果落后Relay太多,向Bootstrap Server发起查询
3、新Databus客户端会向Bootstrap Server发起bootstrap启动查询,然后切换到向中继发起查询,以完成最新的数据变更事件
4、单一客户端可以处理整个Databus数据流,或者可以成为消费者集群的一部分,其中每个消费者只处理一部分流数据

Databus Bootstrap Producer只是一种特定的Databus客户端,它的功能有:

检查中继上的新数据变更事件
将变更存储在MySQL数据库中
MySQL数据库供Bootstrap和客户端使用
Databus Bootstrap Server的主要功能,就是监听来自Databus客户端的请求,并返回长期回溯数据变更事件。

目前databus的主要应用:1.是主数据库和衍生数据库的同步,一般是为了对主数据库数据按另外维度进行组织,提供给查询使用 2.是用来将数据库数据同步到缓存中,这样主要是为了减轻数据库读压力。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183412.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月10日 下午8:00
下一篇 2022年10月10日 下午8:00


相关推荐

  • docker 镜像构建_dockerfile引入两个镜像

    docker 镜像构建_dockerfile引入两个镜像前言如果我们已经安装了一个python3的环境,如果另一台机器也需要安装同样的环境又要敲一遍,很麻烦,这里可以配置Dockerfile文件,让其自动安装,类似shell脚本Dockerfile编写

    2022年7月30日
    104
  • 谷歌地图 ftp_谷歌地图离线地图包

    谷歌地图 ftp_谷歌地图离线地图包1.3GB的谷歌离线地图包安装使用与下载:MapsV4.5.0以前的版本安装方法: 1、谷歌地图软件要下载经国外高手brut修改过的带brut字样的版本如Google.Maps.v4.4.0.4414-brut16.apk 2、将下载的谷歌离线地图包解压到SD卡根目录下的\brut.googlemaps文件夹中 3、打开地图软件,点菜单进更多,在高级设置里勾

    2025年11月20日
    5
  • Ubuntu17.04配置SSH服务[通俗易懂]

    Ubuntu17.04配置SSH服务[通俗易懂]ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全,现在介绍一下如何在Ubuntu17.04上安装和配置ssh.方法和步骤一、配置ssh服务1、更新源列表打开”终端窗口”terminal,输入”sudoapt-getupdate”–>回车–>”输入当前登录用户的管理员密码”–>回车,就可以了。更新可能需要等待一两分钟。…

    2025年12月15日
    5
  • golang 2021. 激活码(JetBrains全家桶)

    (golang 2021. 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1…

    2022年3月27日
    262
  • JavaScript 精粹:Number 与 Math

    JavaScript 精粹:Number 与 Math

    2021年7月1日
    121
  • python字体怎么放大_Python字体大小

    python字体怎么放大_Python字体大小Pycharm中的代码字体太小怎么处理?Pycharm界面不错,就是字体小了点,如果用户看着不舒服,是可以修改的,毕竟小小个的字体看起来好费劲不说,还容易恍惚,Pycharm设置字体大小的方法可以看看下文步骤。Pycharm中的代码字体太小怎么处理?1、如图,Pycharm顶部菜单栏的字体还是太小了,长时间观看对眼睛不好。2、接着我们点击“File”菜单,开始把菜单和代码的字体都改大。3、点击“s…

    2022年8月28日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号