OceanBase数据库-学习笔记1-概论

多租户概念

集群和分布式

  • 随着互联网、物联网和大数据技术的发展,数据量呈指数级增长,单机数据库难以存储和处理如此庞大的数据。
  • 现代应用通常需要支持大量用户同时访问,单机数据库在高并发场景下容易成为性能瓶颈。
  • 单点故障是单机数据库的一个主要问题,一旦发生故障,整个系统可能无法使用。
  • 许多应用需要实时处理和分析数据,单机数据库在实时性方面存在局限。

集群(Cluster)和分布式系统(Distributed System)应运而生,它们都是为了解决大规模计算和数据处理需求而设计的系统架构。

定义

  • 集群(Cluster):
    • 集群是将多台计算机(节点)通过网络连接在一起,作为一个整体系统来工作。
    • 集群中的节点通常位于同一个物理位置(如数据中心),并且共享相同的目标(如提高性能、可用性或容错性)。
    • 集群通常用于高性能计算(HPC)、负载均衡、高可用性等场景。
  • 分布式系统(Distributed System):
    • 分布式系统是由多个独立的计算机(节点)通过网络连接在一起,协同完成一个共同的任务。
    • 分布式系统中的节点可以分布在不同的地理位置,彼此之间通过消息传递进行通信。
    • 分布式系统通常用于大规模数据处理、分布式存储、云计算等场景。

区别

  • 集群更适合需要高性能、低延迟和高可用性的场景,通常用于单一任务或服务的集中式管理。
  • 分布式系统更适合需要大规模扩展、跨地域协作和复杂任务处理的场景,通常用于大规模数据处理和存储。

两者在实际应用中常常结合使用,例如在分布式系统中使用集群来提高局部性能,或者在集群中使用分布式技术来实现更大规模的扩展。

运维和管理

集群和分布式系统的管理通常比单机系统复杂得多,因为它们涉及多个节点、网络通信、数据一致性、故障处理等多方面的挑战。

集群管理的复杂性
  • 节点管理:集群中的每个节点需要单独配置、监控和维护。节点之间的硬件和软件环境需要保持一致。
  • 负载均衡:需要动态分配任务,确保每个节点的负载均衡。负载均衡策略需要根据业务需求调整。
  • 高可用性:需要设计冗余和故障转移机制,确保单点故障不会影响整个集群。需要监控节点状态,及时处理故障。
  • 资源调度:需要合理分配计算、存储和网络资源,避免资源浪费或瓶颈。
  • 一致性维护:在集群中,数据的一致性需要通过分布式锁、选举算法等机制来保证。
分布式系统管理的复杂性
  • 网络通信:分布式系统的节点通常分布在不同的地理位置,网络延迟和分区问题会增加复杂性。需要处理消息丢失、重复、乱序等问题。
  • 数据一致性:分布式系统中,数据的一致性(如 CAP 理论中的一致性、可用性和分区容错性)难以同时满足。需要选择合适的分布式一致性算法(如 Paxos、Raft)。
  • 故障处理:分布式系统中的节点故障、网络分区等问题更加频繁和复杂。需要设计容错机制,如数据复制、故障检测和恢复。
  • 扩展性:分布式系统需要支持动态扩展,添加或删除节点时不能影响系统运行。需要设计无状态服务或数据分片机制。
  • 监控和调试:分布式系统的日志和监控数据分散在多个节点,难以集中分析和调试。需要专门的工具(如 Prometheus、Grafana、ELK Stack)来监控系统状态。
  • 安全性:分布式系统的节点之间需要安全通信,防止数据泄露或篡改。需要配置 SSL/TLS、防火墙、访问控制等安全措施。

分布式数据库

分布式数据库的出现是为了应对大数据时代的数据存储、处理、高并发、高可用性、地理分布、灵活性、成本效益、复杂查询、数据安全、多样化数据模型和实时数据处理等多方面的需求和挑战。OceanBase数据库就是一款分布式数据库(整体分布式,局部集群相结合)。

为了简化大规模部署多个业务数据库的管理并降低资源成本,OceanBase 数据库提供了独特的多租户特性。多租户架构适用于资源整合(Resource Consolidation)、云服务等场景,同时也降低了运维复杂度。

多租户概念

可以这样理解:OceanBase 集群 是一个"超级数据库实例",包含底层的物理资源。租户是一个逻辑概念,是在 OceanBase 中的逻辑实体,可以理解为一个"虚拟的数据库实例"。

多租户,就是在一个集群中可以有多个租户存在,它们共享同一套物理资源(如 CPU、内存、存储等),但是在逻辑上是一个独立的数据库实例,拥有自己的数据和配置。

可以类比租房子的场景,一栋楼有多个房间,每个房间都可以被租户租取使用,一个租户可以租多个房间。那么从逻辑层面上,多个租户都共享这一栋楼的资源,而每个租户只能使用自己租的房间,相互隔离。这样就不用每个租户都建一套房,那么网格员在管理的时候,就可以只对这栋楼的属性进行管理,降低了管理的复杂度。


为啥要引入多租户

问题背景

  • 在传统架构中,每个业务系统通常需要独立的数据库实例,导致管理复杂度高,运维成本大。
  • 传统架构中,每个业务系统需要独立的硬件资源,导致资源利用率低,成本高。

方案

  • 通过多租户架构,OceanBase 可以在一个数据库集群中支持多个业务系统(每个业务系统作为一个租户)。
  • 管理员只需管理一个 OceanBase 集群,而不是多个独立的数据库实例,大大简化了部署和运维工作。
  • 提供统一的管理工具,支持对多个租户进行集中监控、配置和资源调整。
  • 多租户架构允许多个业务系统共享同一套物理资源(如 CPU、内存、存储等),提高了资源利用率。[1]
  • 通过动态资源分配,可以根据业务需求灵活调整资源使用,避免资源浪费。
  • 减少了硬件投资和运维成本,特别适合大规模部署场景。

1\]: 一个 OceanBase 集群 可以看作一个"超级数据库实例",它包含了底层的物理资源(如 CPU、内存、存储等)。在这个集群中,可以创建多个 租户(Tenant),每个租户在逻辑上是一个独立的数据库实例。每个租户有自己的数据、用户、权限和配置,就像传统数据库实例一样。 但与传统模式不同的是,这些租户 共享同一个 OceanBase 集群的物理资源,而不是每个租户独占一套硬件资源。 #### 部署模式 OceanBase 数据库支持无共享(Shared-Nothing,SN)模式和共享存储(Shared-Storage,SS)模式两种部署模式。 * SN模式,常用的部署模式,各个节点之间完全对等,每个节点都有自己的 SQL 引擎、存储引擎、事务引擎。 * SS模式,一般是在云上提供云原生数据库服务,降低数据库使用成本,提升性能和易用性。 #### OceanBase 数据库提供企业版和社区版两种形态。 * **OceanBase 数据库企业版** :OceanBase 企业版是一款完全自研的企业级原生分布式数据库,在普通硬件上实现金融级高可用,首创"三地五中心"城市级故障自动无损容灾新标准,刷新 TPC-C 标准测试,单集群规模超过 1500 节点,具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性。 * **OceanBase 数据库社区版** :兼容 MySQL 的单机分布式一体化数据库,具有原生分布式架构,支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。OceanBase 社区版数据库内核开源,与 MySQL 兼容,对接虚拟化和大数据技术及产品,支持多种图形化的开发工具、运维监控工具和数据迁移工具;同时社区版提供开放的接口和丰富的生态能力,支持企业或个人更好的实现定制化业务需求。 *** ** * ** *** **以上就是本次的分享,感谢阅读。**

相关推荐
数据与后端架构提升之路9 分钟前
深度解析如何将图像帧和音频片段特征高效存储到向量数据库 Milvus
数据库·opencv·音视频
20242817李臻1 小时前
李臻20242817_安全文件传输系统项目报告_第9周
数据库·安全
小白考证进阶中1 小时前
0基础可以考MySQL OCP么?备考时间需要多久?
数据库·mysql·开闭原则
PLUS_WAVE1 小时前
CogCoM: A Visual Language Model with Chain-of-Manipulations Reasoning 学习笔记
学习·语言模型·大模型·cot·vlm·推理模型·reasoning
观无1 小时前
Redis远程链接应用案例
数据库·redis·缓存·c#
绵绵细雨中的乡音1 小时前
Linux进程学习【环境变量】&&进程优先级
linux·运维·学习
星星点点洲1 小时前
【缓存与数据库结合方案】伪从技术 vs 直接同步/MQ方案的深度对比
数据库·缓存
贺函不是涵1 小时前
【沉浸式求职学习day27】
学习
努力奋斗的小杨1 小时前
学习MySQL的第十二天
数据库·笔记·学习·mysql·navicat