DBLE

开源MySQL数据传输中间件—DTLE

房东的猫 提交于 2019-11-30 20:43:46
目前,随着MySQL在各个行业的深入使用,在不同数据系统、不同数据中心、不同业务系统之间进行数据传输、数据订阅、形成数据总线等需求逐渐增多。爱可生推出的DTLE是一个针对MySQL的使用特点、支持多种使用场景的数据传输中间件。 DTLE: http://dtle.cloud https://github.com/actiontech/dtle 对应文档地址: https://actiontech.github.io/dtle-docs-cn/ DTLE QQ群 :852990221 目前,随着MySQL在各个行业的深入使用,在不同数据系统、不同数据中心、不同业务系统之间进行数据传输、数据订阅、形成数据总线等需求逐渐增多。爱可生推出的DTLE是一个针对MySQL的使用特点、支持多种使用场景的数据传输中间件。 DTLE是什么? DTLE是一个开源的数据传输中间件 ,其针对的核心场景如下: 跨数据中心的数据传输 :DTLE能在数据中心间进行可靠数据传输,并提供链路压缩以降低传输成本 云间数据同步/迁移 :DTLE能提供在公有云间架设数据同步通道,以支持数据容灾等需求 数据汇聚 :DTLE能将多个数据源汇聚到同一个数据源,以提供数据分析/数据转储的功能 数据订阅 :DTLE能将数据源的变更消息发往Kafka等消息中间件,以支持数据订阅通知/缓存失效通知等需求 跨数据中心的双向复制

微课程 | 第四课《目录结构演示》

跟風遠走 提交于 2019-11-30 20:31:22
https://v.youku.com/v_show/id_XNDQ1MjQ3NjE2OA==.html 上一期我们介绍了 DBLE 的普通安装方式,这一期我们来了解一下安装好的目录结构。 https://v.youku.com/v_show/id_XNDQ1MjQ5MzQyOA==.html DBLE 安装目录介绍 首先是一个算法的目录,存放自定义算法。然后是 bin 目录,存放启动脚本和初始化集群状态的脚本,然后还有小工具命令。conf 目录是最重要的,存放配置文件,我们后面详细说它。pid 是守护进程文件,如果进程不在了,pid 就消失了。所以如果监控的话,可以通过这种方式来去看 dble 状态是否正常。然后 lib 目录是我们的 jar 格式的包存放目录,包括一些依赖包以及最重要的 dble 的 jar 文件。然后是日志目录,日志目录里面可以看到已经有写了些日志,包括一些归档的按照日期分类的日志,当前的 dble 日志,还有一个 GC 日志,GC 日志只有发生 GC 才会去写。如果我们有 GC 方面的问题,可以以此诊断,还有一个分布式事务的日志。还有一个 version.txt 文件,这里面有一个彩蛋!这个彩蛋可以在 Linux 环境下展示一个二维码。这个二维码是我们的社区微信公众号的二维码,还显示了当前 dble 的版本信息。最后是 viewConf 文件,在使用

[缺陷分析]半同步下多从库复制异常

孤街浪徒 提交于 2019-11-30 15:04:47
引 言 本文是由爱可生研发团队出品的「 图解MySQL 」系列文章,不定期更新,但篇篇精品。 爱可生开源社区 持续运营维护的小目标: 每周至少推送一篇高质量技术文章 每月研发团队发布开源组件新版 每年1024开源一款企业级组件 2019年至少25场社区活动 欢迎大家持续关注~ 本文分析的缺陷是MySQL bug#89370,其主要的现象是:配置半同步(复制)到多个从库,部分从库在一段时间内无法复制数据,但所有复制状态均正常。 缺陷的复现 MySQL 版本:5.7.16,5.7.17,5.7.21 配置半同步一个master两个slave,设置master的 rpl_semi_sync_master_wait_for_slave_count=2,保持一定数据压力 检查master的 rpl_semi_sync_master_status状态为ON,确保半同步没有退化为异步 设置master的 rpl_semi_sync_master_wait_for_slave_count=1 重启一个slave “stop slave; start slave” 可以观察到步骤4中重启的那个slave长达数分钟不会有master的复制数据流入,但查看复制状态均正常。 缺陷的原理图解 图一:描述了半同步复制的大致流程 上图中按序解析了MySQL半同步插件在binlog group

分布式 | dble 用 jumpstringhash 替换 Mycat 一致性 hash 原因解析

纵然是瞬间 提交于 2019-11-29 09:02:40
背景 MyCat 对于字符串类型为分片字段的数据,有三种分片模式,分别是:模值 hash(求模法),jumpstringhash(跳跃法),一致性 hash(环割法) DBLE 对于 hash 算法选取方面,除了继承 MyCat 的模值 hash,并没有延续使用 MyCat 的一致性 hash,而是选取了另一种流行的算法 —— “jumpstringhash”。 介绍 下面对于环割法(一致性 hash)及跳跃法(jumpstringhash)的原理、特性及优缺点进行简单的介绍。 环割法(一致性 hash) 环割法的原理如下: 初始化的时候生成分片数量X × 环割数量 N 的固定方式编号的字符串,例如 SHARD-1-NODE-1,并计算所有 X×N 个字符串的所有 hash 值。 将所有计算出来的 hash 值放到一个排序的 Map 中,并将其中的所有元素进行排序。 输入字符串的时候计算输入字符串的 hash 值,查看 hash 值介于哪两个元素之间,取小于 hash 值的那个元素对应的分片为数据的分片。 特点 缺点 随机性强 初始化耗时长,内存消耗较高,需要进行大量数据排序,分片消耗高 跳跃法(jumpstringhash) 跳跃法的原理如下: 根据公式: 将数据落在每一个节点的概率进行平均分配。 对于输入的字符串进行计算 hash 值

微课程 | 第三课《普通安装方式》

孤人 提交于 2019-11-25 20:45:07
https://v.youku.com/v_show/id_XNDQ0NzY3MTQ1Ng== 上一期我们介绍了通过 Docker 来安装 DBLE 的安装方式。如果是普通的安装方式我们要怎么做呢? 我这里同样有一个安装视频演示,理论上应该搭建两个 MySQL 的真实环境来做,但是 MySQL 今天不是我们的重点,所以 MySQL 还是用容器方式做的。我们的 DBLE 是使用单独的一个压缩包安装的,DBLE 手册中有一个 quick start ,可以抽空去看。 接下来安装演示。 https://v.youku.com/v_show/id_XNDQ0NzY3NTgzNg== MySQL 的安装 首先下载好 github 上发布的安装包,解压后当前目录下生成一个叫 dble 的目录。因为没有安装启用 MySQL 服务,所以先要用 Docker 来启动一下 MySQL 的服务(非常方便)。接下来指定 MySQL 服务所在容器的名字,指定登录的密码和映射端口。使用 Docker 里面 MySQL 端口是 3306,端口映射宿主机是 33061。大家可以理解为MySQL 数据库的端口是 33061,第一个搭建完毕。第二个只需要改一下容器名称和端口,避免冲突。这样两个 MySQL 数据库可以使用了。 然后用 docker ps 查看两个 MySQL 正在运行。这样就完成了 MySQL