一款低延迟的分布式数据库同步系统--databus

简介: 一款低延迟的分布式数据库同步系统--databus

 每次看到马路对面摩托罗拉的大牌子,都想起谷歌125亿美元收购摩托罗拉移动,后来又以29亿美元卖给联想的事情。谷歌所做的决策都比较考虑长远利益,在这串交易中,谷歌获得了摩托罗拉最有价值的几千项专利,稳健了Android的生态。谷歌曾经在美国一个地区占用巨大的面积建立了太阳能发电站,人称“烤鸟”项目。因为鸟儿从此地飞过会因为太热而从天上掉下来变成熟鸟。而产生的电能仅够一个小村庄使用。但是正是这种愿意去尝试才推动了科技的发展。让谷歌这么多年屹立不倒。

 

  Databus是LinkedIn开源的一款低延迟的分布式数据库同步系统(a source-agnostic distributed change data capture system),它提供可靠的数据捕获、流转和数据处理功能。

 

应用场景:


   主要应用场景:跨部门之间或者跨机房之间进行数据库的数据订阅。同类产品有阿里的canal。支持Oracle和Mysql数据库。


     Databus和canal一样,数据都是基于数据库日志挖掘来做的。我之前的博客也提到了,当今的数据处理大致可以分为两类:联机事务处理OLTP(OnLine Transaction Processing)和联机分析处理OLAP(OnLine Analytical Processing)。


  OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。但是平常所说的OLTP是集成到SQL Server中的数据库引擎组件,因为微软有个白皮书《SQL Server In-Memory OLTP Internals Overview》。但是OLTP实际上可以称之为:面向交易的实时处理系统。性能指标是TPS。


  OLAP是快速响应多维分析的一种解决方案。面向的数据源是数据仓库。支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。


  再回来说Databus,Databus最重要的特点是其无限回溯功能。当消费者完整数据拷贝,或者消费者的已有数据和主OLTP数据库相差很大时能够低延时的进行同步。


核心组件:


  Databus的核心组件是Databus Relay。主要负责两个工作:


  1>从Databus源数据库中读取变化行,并序列化为事件流保存至内存中。


  2>接受客户端的请求,并将数据变化事件流返回给客户端。

 

实现原理:


  databus使用了open-replocator作为获取数据库变更事件的组件。功能是实时获取mysql的binlog日志,并封装成Event对象,然后调用已注册的listener进行处理。


技术架构:


  • Event Producer:用来读取数据库的变化事件,转化为AVRO类型并存储至内存中。


  下面说说AVRO. Apache Avro是一个独立于编程语言的数据序列化系统,该项目由Hadoop之父牵头创建。它可以提供:丰富的数据结构类型,快速可压缩的二进制数据形式,存储持久数据的文件容器,远程过程调用,同动态语言的简单集成。读写数据文件和使用RPC协议都不需要生成代码,而代码生成作为一种可选的优化只值得在静态类型语言中实现。


  • Circular Buffer:Relay有一个或多个环形的缓冲池用来保存按递增的系统变化号(SCN)为顺序的变化事件。


  细心的读者会发现每个中间件都有自己比较独特的缓冲策略,这种缓冲策略很大成熟决定了此中间件的好坏。


  • SCN Writer/Reader:用来读取和吸入SCN号至硬盘。


  • RESTFUL interface:它暴露一个restful接口,用来推送数据变化事件至客户端。

 

相关文章
|
17小时前
|
小程序 JavaScript Java
奶茶点餐|奶茶店自助点餐系统|基于微信小程序的饮品点单系统的设计与实现(源码+数据库+文档)
奶茶点餐|奶茶店自助点餐系统|基于微信小程序的饮品点单系统的设计与实现(源码+数据库+文档)
8 1
|
21小时前
|
Cloud Native 数据管理 关系型数据库
【阿里云云原生专栏】云原生数据管理:阿里云数据库服务的分布式实践
【5月更文挑战第21天】阿里云数据库服务在云原生时代展现优势,应对分布式数据管理挑战。PolarDB等服务保证高可用和弹性,通过多副本机制和分布式事务确保数据一致性和可靠性。示例代码展示了在阿里云数据库上进行分布式事务操作。此外,丰富的监控工具协助用户管理数据库性能,支持企业的数字化转型和业务增长。
98 1
|
1天前
|
存储 分布式计算 Java
大数据存储技术(3)—— HBase分布式数据库
大数据存储技术(3)—— HBase分布式数据库
6 0
|
1天前
|
关系型数据库 分布式数据库 PolarDB
【PolarDB开源】PolarDB开源之旅:从零开始搭建分布式数据库集群
【5月更文挑战第20天】PolarDB,阿里云自研的云原生分布式数据库,因其高性能、高可用和易用性备受瞩目。本文指导如何搭建PolarDB集群:准备硬件和软件环境,从GitHub克隆源码,构建Docker镜像,部署控制节点和计算节点,最后验证集群状态。通过开源,PolarDB旨在推动数据库技术进步,邀请用户一同探索其潜力,共创未来。
26 4
|
3天前
|
监控 安全 BI
安全检测 | 数据库审计系统为何如此重要?
数据库审计是应对信息化社会中数据安全的关键工具。它记录并分析网络上的数据库活动,对风险行为实时警告,帮助追踪事故源头和合规管理。尽管已有其他安全产品,但数据库审计专门针对内部审核监控,尤其在多数安全问题源于内部的情况下显得尤为重要。审计系统提供全方位安全审计、实时回放、精准定位、事件关联分析等功能,同时支持多种部署方式和确保数据安全的机制。企业在选择审计产品时应考虑自身业务需求和审计目标,以找到最适合的解决方案。
|
6天前
|
SQL 前端开发 Java
【个人博客系统网站】框架升级 · 工程目录 · 数据库设计
【个人博客系统网站】框架升级 · 工程目录 · 数据库设计
15 0
|
6天前
|
算法 Go 分布式数据库
构建高可用的分布式数据库集群:使用Go语言与Raft共识算法
随着数据量的爆炸式增长,单一数据库服务器已难以满足高可用性和可扩展性的需求。在本文中,我们将探讨如何使用Go语言结合Raft共识算法来构建一个高可用的分布式数据库集群。我们不仅会介绍Raft算法的基本原理,还会详细阐述如何利用Go语言的并发特性和网络编程能力来实现这一目标。此外,我们还将分析构建过程中可能遇到的挑战和解决方案,为读者提供一个完整的实践指南。
|
6天前
|
存储 Cloud Native 关系型数据库
PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
【5月更文挑战第14天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
45 2
|
6天前
|
存储 Java 分布式数据库
【分布式计算框架】HBase数据库编程实践
【分布式计算框架】HBase数据库编程实践
15 1
|
6天前
|
存储 机器学习/深度学习 人工智能
新一代数据库技术:融合AI的智能数据管理系统
传统数据库管理系统在数据存储和查询方面已经取得了巨大的成就,但随着数据量的不断增长和应用场景的多样化,传统数据库已经难以满足日益增长的需求。本文将介绍一种新一代数据库技术,即融合了人工智能技术的智能数据管理系统。通过结合AI的强大能力,这种系统能够实现更高效的数据管理、更智能的数据分析和更精准的数据预测,为用户带来全新的数据管理体验。