对于元数据系统的构建,目前的设计是基于基础数据配置的管理,包括多个元数据维度的管理。在此基础上,需要梳理基于系统的场景元数据设计,涵盖备份恢复、监控告警、实例部署等层面的元数据管理信息,通过运维任务抽取系统流程;申请、权限申请等,逐步梳理主要业务流程,其中各层相对隔离,各层需要开放相关API,ORM层的相关操作不能直接暴露在业务层。我们在这里描述的主要是元数据的核心设计部分。元数据维度可以根据业务维度和系统维度综合考虑。业务维度比较简单,而系统维度的结构和层次比较复杂,但是业务维度的信息是基于系统维度的设计,比如实例的概念,实例的概念业务例如,实例和集群是业务中广义的实例类别,因此设计会基于系统维度。接口层:业务访问维度,基于app_code,外部体现为实例,如单实例、主从、集群等,均以实例角色出现,不展示内部数据信息(如不展示数据分片nodes),接口层数据来自代理层。接口层的数据是只读的,代理层可以刷新数据:代理层是设计中最关键的逻辑关系层。它是连接过去和未来的纽带。单实例需要体现代理层的service_name,基于MHA的环境需要体现Consul或VIP的service_name。如果是集群,需要体现中间件和数据分片;如果是分布式集群,则只对外服务层(如TiDB中显示的Server层,如果有多个Server则显示多个。拓扑层:是逻辑关系最复杂的层,需要支持多个拓扑结构,如一主一从、一主多从、级联复制、双主复制等,其中单实例是一个特殊的复制拓扑,也需要体现出来,另外还需要支持分布式模型,在分布式模型中,多个节点是相对独立的角色,不能体现多个节点之间的映射关系。是按照计算和存储分离考虑的,它不仅包括数据库实例信息,还包括中间件的信息。ance层是连接数据库层的重要环节。宿主层:宿主层的信息相对独立,主要是宿主层的基本信息,可以通过对外接口提取,并保持周期性刷新。实例和集群的关系型数据库实例是基本的服务单元,按照实例的作用可以分为单实例、主库实例、从库实例和级联实例。集群类型分为高可用集群、分布式集群(分库分表)、分布式集群(NewSQL系统)高可用集群:多主从实例,如一主一从或一主多从多从分布式集群(分库分表):多个数据库实例(通常是一组主从实例就是高可用集群)和少量数据库中间件(通常是1~3个用于负载均衡)的分布式集群(NewSQL系统):按照存储和计算分离模式,有计算节点、存储节点和配置管理节点。基于分布式协议实现分布式存储管理。同时,集群维度和实例维度在运维管理流程上也会存在显着差异。长期来看,集群交付和实例交付是根据业务需求共同决定的,会长期共存。综上所述,cluster和instance的含义有一些交集,但也有明显的区别。根据规范程度,实例尽可能以高可用集群基础设施的形式出现,同时可以根据数据存储的水平扩展重新配置分布。集群(分库分表)架构,并且因为地位和用途的不同,会有单实例,普通主从等环境。因此,实例和集群的元数据维度存在明显差异,但在元数据的设计上,需要将两者有效结合。元数据与元数据层级对应关系如下:元数据维度元数据层级访问层(信息缓存)实例代理层拓扑层实例层集群主机层数据库数据库层业务业务层本文转载请联系杨建荣学习笔记公众号。
