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)


相关推荐

  • Thread之ParameterizedThreadStart

    Thread之ParameterizedThreadStartTreadStart委托仅仅指向无参数且无返回值的方法。如果新线程上运行带参数的方法,那么需要用到ParameterizedThreadStart委托,ParameterizedThreadStart定义:publicdelegatevoidParameterizedThreadStart(objectobj);一:要求只能有一个参数,且为object类型二:无返回值T…

  • PHP蜘蛛爬虫开发文档

    PHP蜘蛛爬虫开发文档

  • 华三vlan配置教程_思科模拟器交换机划分vlan命令

    华三vlan配置教程_思科模拟器交换机划分vlan命令1.配置步骤(1)配置DeviceA<DeviceA>system-view[DeviceA]vlan100[DeviceA-vlan100]portgigabitethernet1/0/1[DeviceA-vlan100]quit[DeviceA]vlan200[DeviceA-vlan100]portgigabitethernet1/0/2[Device…

  • 大数据平台建设经验「建议收藏」

    大数据平台建设经验「建议收藏」大数据平台建设技术背景Facebook的DREP原则!!思路建设流程经验教训生产案例饿了么大数据平台建设大数据平台逻辑架构图工具链架构图!!流入三个源数据流的UV计算渠道订单一个大数据平台省了20个IT人力——敦奴数据平台建设案例分享引跑科技副总裁张晓东:引跑DBone数据库助力大数据建设需求挖掘五步曲,快速建设大数据项目整合公司3个网站后台管理子系统的经验总结-实现多系统的单点登录(ASP.N

  • typora主题修改后保存_typora设置字体

    typora主题修改后保存_typora设置字体typora买了几天了,一直思考什么时候去学习下,毕竟,以前是免费的,没那么多讲究,就是把它当做一个普普通通的编辑器使用。似乎也没有用它的任何功能,甚至连官网文档那么详细的解释都没看;可见,虽然使用着免费的优秀的产品,竟然连最基础的功能都不会。换了个主题,这个是看着官网文档做的。主题下载首先,去下载了一个主题,https://theme.typora.io/;选一个自己喜欢的。设置主题其次,打开偏好设置,找到主题保存的文件夹。操作如下:流程图#mermaid-svg-FyDmLYlb0MV3

    2022年10月28日
  • Unity Shader 一 激光特效Shader[通俗易懂]

    学习Shader已经有几个月的时间了,Shader作为一门GPU编程语言来说确实比较的难学。主要原因经过我的思考还是本人自己的计算机图形学和美术基础不扎实。好无奈,作为一个之前单纯手写代码的程序员真的是感觉好蛋疼。      学习期间,我也向多名Shader大神请教学习经验,得到的回应大多是让我好好去学习计算机图形学。哈哈,于是乎,本人又跑去看了一个多月的计算机图形学。接着再次回来学习Shad

发表回复

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

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