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.是用来将数据库数据同步到缓存中,这样主要是为了减轻数据库读压力。

 

 

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Qt Quick之Canvas

    QML中的Canvas,俗称画布,它用来定义一个绘图区域,可以使用ECMAScript代码来绘制直线,矩形,贝塞尔曲线,弧线,图片,文字等图元,还可以为这些图元应用填充颜色和边框颜色,甚至还可以进行低

    2021年12月29日
  • MySQL 分区表

    MySQL 分区表

  • jQuery 教程

    jQuery 教程菜鸟教程—jQuery教程:https://www.runoob.com/jquery/jquery-tutorial.htmljQuery是一个JavaScript库。jQuery极大地简化了JavaScript编程。jQuery简介什么是jQuery?jQuery是一个JavaScript函数库。jQuery是一个轻量级的”写的少,做的多”的JavaScript库。jQuery库包含以下功能:HTML…

  • game theory博弈论全文翻译_john nash博弈论

    game theory博弈论全文翻译_john nash博弈论ProblemDescriptionLittleJohnisplayingveryfunnygamewithhisyoungerbrother.ThereisonebigboxfilledwithM&Msofdifferentcolors.AtfirstJohnhastoeatseveralM&Msofthesamecolor

  • qt操作json(QT 教程)

    以故事方式来学习如何使用Qt接口来操作JSON数据。

  • 900万!!!!!!!!这也太强了吧!!!我的老天!!!!!!!!!!

    900万!!!!!!!!这也太强了吧!!!我的老天!!!!!!!!!!大家好,我是二哥呀!之前在送书的时候做了一个小调查,问题是:“你是怎么认识二哥的?”我以为从知乎上了解的多一些,没想到,CSDN上的最多,看来二哥还是在CSDN上更有影响力一些,这个结果多少让我感到有些意外,因为我最近在知乎上更新得更勤快一些。写这篇文章的时候,我去CSDN上看了一眼我的主页。访问量突破了900万!按照目前的增长速度来看,年底突破1000万访问量应该没啥大问题。另外还有一些数据我觉得也挺牛逼的:原创文章数量957篇;作者总榜第12名;作者周榜第

发表回复

您的电子邮箱地址不会被公开。

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