京东数据库发展历程:从诸侯混战到去IOE,MySQL成为核心

数据库技术

你知道数据库操作里有许多既有趣又实用的技巧吗?比如有一种机制,当Hook程序启动后,它会选择一个最新的Slave来替换Master,同时还会同步更新ETCD中的元数据。这样一来,当业务方再次请求时,就会直接连接到新的Master。那么,这种精确的切换过程是如何实现的?

数据库技术

JED与MySQL协议的兼容

JED非常实用,完全支持MySQL协议。这意味着无论是MySQL客户端还是标准的JDBC驱动,都能与JED的Gate层建立连接。这样,用户就可以轻松进行查询和计算。这就像两座桥梁都能带我们到达目的地。无论使用客户端还是驱动,一旦连接到JED的Gate层,就相当于打开了通往数据处理的大门。

来个问题,假如将来JED需要与新数据库的协议相连接,大家觉得这会有多难?欢迎在评论区发表你们的看法。觉得这篇文章有帮助的话,别忘了点赞和转发。

BinLake替代Canal的原因

数据库技术

之前,我们主要依赖Canal来采集Binlog。然而,在实际操作中遇到了不少挑战,例如资源浪费问题。若一业务既要采集MySQLBinlog,又要确保高可用性,至少需要两台服务器,这无疑增加了成本。幸运的是,BinLake的出现完美解决了这一难题。BinLake专注于BinLog采集和订阅服务,与普通集群不同,它没有Master节点。这种独特设计使得资源利用更加高效,风险也得到分散。

大家不妨回想,在各自的工作或学习环境中,是否常常遇到旧技术弊端显现,随后被新技术所取代的情形?

数据库技术

Tower与传统Master节点管理区别

数据库技术

这里的Tower与众不同。一般来说,Master节点得负责元数据的管理。但Tower却不同,它完全不涉足元数据的打理。它主要的工作是向Topology服务下达指令,对存于ETCD或ZooKeeper的元数据信息进行修改或查询。它就像是一名专职的信使,职责清晰,只需将数据需求传递出去,无需费心管理元数据。

我想请大家分享一下,这种特别细分的职能在其他技术行业里是否也有类似情况?欢迎留言讨论。同时,也希望各位能点个赞,转发文章,让更多的人了解。

新Instance实例化的选择

数据库技术

当用户新获取了MySQL的Binlog,或是某个instance线程意外中断,这时该如何应对?需依据集群中各Wave服务的健康状况,选出健康度最佳的Wave实例,以创建新的instance线程。这就像战场上有士兵受伤倒下,必须从剩余健康士兵中选出最强壮的一个来替代。

数据库技术

大家是否曾遭遇过线程崩溃,资源随之重新分配的情况?欢迎来聊聊你们的经历。觉得内容有帮助的话,不妨点个赞,并把文章转发出去。

数据一致性校验和Shard切换

这里有一套相当严谨的操作步骤。首先,得用众多后台协程在目标与源端逐条提取数据并进行比对。一旦数据一致性检查合格,就得着手进行分片切换。这一步需要格外小心,必须严格按照流程逐一进行,就像拼积木一般,任何一块不对都不可以。

数据库技术

如果数据验证出现故障,那么这可能会对后续步骤产生哪些不良后果?欢迎大家留言探讨,并且希望大家能够将这篇文章传播开来。

数据库技术

MySQL主从复制关系重建

依据新的Master信息,重新搭建MySQL的主从复制架构是关键步骤。需要将剩余的复制功能和只读权限重新连接到新主服务器上,并且还需要通过JED-Ctrld服务的接口,对ETCD中的元数据进行更新。这一连串的动作,就好比是对一台大型设备进行拆解后重新组装,每个部件都必须放到正确的位置。

数据库技术

大家在使用数据库时,是否觉得这部分内容有些难以掌握?不妨留言、点赞、转发一下。

JED-Gate中的buffer作用

数据库技术

JED-Gate中,每个Shard都配备了一个对应的buffer。这个buffer的功能很重要,它能流式地接收每个Shard处理后的有序数据。因此,buffer中的数据同样是有序的。这样的有序数据使得操作更为便捷,效率也随之提升。

大家对这缓冲区的设计有何改进意见?期待你们提出看法,同时,也请点赞转发,让更多人了解这篇文章。

数据库技术

基于相同键的Join查询操作

如果JoinKey与ShardingKey一致,操作就变得轻松了。可以轻松地将Join查询指令发送至各个shard。随后在JED-Gate处,将各shard的查询结果汇总,最后反馈给前端应用。整个过程既简便又高效。

在使用数据库查询时,大家是否曾遭遇过由于Key设置差异而造成查询困难的问题?不妨在评论区分享一下您的遭遇。同时,也请大家继续为文章点赞和转发。

数据库技术

评论

发表回复

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