JED 技术内幕

JED 技术内幕架构 JED 平台包括许多服务器进程 命令行工具 基于 Web 的工具和一致的元数据存储支持 基本概念 KeySpace keyspace 是逻辑上的数据库 在非 shard 场景下 一个 keyspace 对应一个 MYSQL DataBase 从 Keyspace 中读取数据和从一个 MYSQL DataBase 中读取数据很像 但是根据读取数据时不同的一致性要求

大家好,我是讯享网,很高兴认识大家。

架构

JED 平台包括许多服务器进程,命令行工具, 基于 Web 的工具和一致的元数据存储支持
在这里插入图片描述
讯享网

基本概念

KeySpace

keyspace 是逻辑上的数据库,在非 shard 场景下,一个 keyspace 对应一个 MYSQL DataBase。从 Keyspace 中读取数据和从一个 MYSQL DataBase 中读取数据很像。但是根据读取数据时不同的一致性要求,可以从一个 master database 或者从一个 replica 读取数据。当一个 keySpace 被 sharding 成多个 Shard 时,一个 keyspace 会对应多个 MYSQL database。在这种情况下一个查询会被路由到一个或者多个 shard 上,这取决于请求的数据所在的位置。

Shard

一个 shard 就是在一个 keyspace 中的一个 horizontal partition 。每个 shard 都会包含一个 master 实例和多个 replica 实例,目前一个 shard 包含一个 Master 实例,一个Replica 实例和一个 ReadOnly 实例,但是若支持半同步复制则需要在一个 Shard 中包含一个 Master 实例,两个 Replica 实例和一个 ReadOnly 实例。而且不同的 shard 之间绝对不会存在数据重叠的现象。
综上所属 DataBase、KeySpace 和 Shard 的关系图如下所示:
在这里插入图片描述
从上面的图中可以看出一个 KeySpace 可以跨越多个 Mysql 实例,而且每个 Shard 中的数据都是 KeySpace 中的一个数据子集,一个 KeySpace 由分散在各个 Shard 中的数据子集组成。每个 Shard 在物理硬件上由多个 MySQL 实例和 JED-Tablet 实例组成,一个 shard 具体包括:一个 Master Mysql 实例、一个 Replica MySQL 实例、一个 ReadOnly MySQL 实例和三个 JED-Tablet 实例。

a. Topology

Topology 服务是一个包含服务器信息,分片方案和主从信息的元数据信息存储服务。Topology 服务是基于一致性存储方案来实现数据一致性, 例如:zookeeper 和 etcd。用户可以通过使用 vtctl(命令行)和vtctld(web)访问 Topology。

b. JED-Gate

JED-Gate 是一个轻量代理服务器,它将查询路由到正确的 JED-Tablet 并将合并的结果返回给客户端。 JED-Gate 接收到请求时会对 sql 进行解析,根据 Topology 服务中的元数据判断路由到哪个 JED-Tablet;JED-Gate 是直接接受应用程序发起的查询的服务。 因为客户端只需要能够找到一个vtgate 实例即可正常访问,所以客户端的实现可以非常简单。

c. JED-Tablet

Vttablet是一个位于 MySQL 数据库实例前面的代理服务器,并且要求与对应的 MYSQL 实例部署在同一个 Pod 上。在 JED 中对于每个 MySQL 实例对应的都有一个 JED-Tablet 实现;

d. Vtctl

Vtctl 是用于管理弹性数据库集群的命令行

小讯
上一篇 2025-02-25 17:52
下一篇 2025-02-19 15:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122434.html