数据库架构选型与落地,看这篇就够了

数据库架构选型与落地,看这篇就够了,第1张

随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的 磁盘 IO 系统开销 ,甚至 性能 上的瓶颈,而单台服务器 资源终究是有限 的。

因此在面对业务扩张过程中,应用程序对数据库系统的 健壮性 安全性 扩展性 提出了更高的要求。

以下,我从数据库架构、选型与落地来让大家入门。

数据库会面临什么样的挑战呢?

业务刚开始我们只用单机数据库就够了,但随着业务增长,数据规模和用户规模上升,这个时候数据库会面临IO瓶颈、存储瓶颈、可用性、安全性问题。

为了解决上述的各种问题,数据库衍生了出不同的架构来解决不同的场景需求。

将数据库的写 *** 作和读 *** 作分离,主库接收写请求,使用多个从库副本负责读请求,从库和主库同步更新数据保持数据一致性,从库可以水平扩展,用于面对读请求的增加。

这个模式也就是常说的读写分离,针对的是小规模数据,而且存在大量读 *** 作的场景。

因为主从的数据是相同的,一旦主库宕机的时候,从库可以 切换为主库提供写入 ,所以这个架构也可以提高数据库系统的 安全性 可用性

优点:

缺点:

在数据库遇到 IO瓶颈 过程中,如果IO集中在某一块的业务中,这个时候可以考虑的就是垂直分库,将热点业务拆分出去,避免由 热点业务 密集IO请求 影响了其他正常业务,所以垂直分库也叫 业务分库

优点:

缺点:

在数据库遇到存储瓶颈的时候,由于数据量过大造成索引性能下降。

这个时候可以考虑将数据做水平拆分,针对数据量巨大的单张表,按照某种规则,切分到多张表里面去。

但是这些表还是在同一个库中,所以库级别的数据库 *** 作还是有IO瓶颈(单个服务器的IO有上限)。

所以水平分表主要还是针对 数据量较大 ,整体业务 请求量较低 的场景。

优点:

缺点:

四、分库分表

在数据库遇到存储瓶颈和IO瓶颈的时候,数据量过大造成索引性能下降,加上同一时间需要处理大规模的业务请求,这个时候单库的IO上限会限制处理效率。

所以需要将单张表的数据切分到多个服务器上去,每个服务器具有相应的库与表,只是表中数据集合不同。

分库分表能够有效地缓解单机和单库的 性能瓶颈和压力 ,突破IO、连接数、硬件资源等的瓶颈。

优点:

缺点:

注:分库还是分表核心关键是有没有IO瓶颈

分片方式都有什么呢?

RANGE(范围分片)

将业务表中的某个 关键字段排序 后,按照顺序从0到10000一个表,10001到20000一个表。最常见的就是 按照时间切分 (月表、年表)。

比如将6个月前,甚至一年前的数据切出去放到另外的一张表,因为随着时间流逝,这些表的数据被查询的概率变小,银行的交易记录多数是采用这种方式。

优点:

缺点:

HASH(哈希分片)

将订单作为主表,然后将其相关的业务表作为附表,取用户id然后 hash取模 ,分配到不同的数据表或者数据库上。

优点:

缺点:

讲到这里,我们已经知道数据库有哪些架构,解决的是哪些问题,因此, 我们在日常设计中需要根据数据的特点,数据的倾向性,数据的安全性等来选择不同的架构

那么,我们应该如何选择数据库架构呢?

虽然把上面的架构全部组合在一起可以形成一个强大的高可用,高负载的数据库系统,但是架构选择合适才是最重要的。

混合架构虽然能够解决所有的场景的问题,但是也会面临更多的挑战,你以为的完美架构,背后其实有着更多的坑。

1、对事务支持

分库分表后(无论是垂直还是水平拆分),就成了分布式事务了,如果依赖数据库本身的分布式事务管理功能去执行事务,将付出高昂的性能代价(XA事务);如果由应用程序去协助控制,形成程序逻辑上的事务,又会造成编程方面的负担(TCC、SAGA)。

2、多库结果集合并 (group by,order by)

由于数据分布于不同的数据库中,无法直接对其做分页、分组、排序等 *** 作,一般应对这种多库结果集合并的查询业务都需要采用数据清洗、同步等其他手段处理(TIDB、KUDU等)。

3、数据延迟

主从架构下的多副本机制和水平分库后的聚合库都会存在主数据和副本数据之间的延迟问题。

4、跨库join

分库分表后表之间的关联 *** 作将受到限制,我们无法join位于不同分库的表(垂直),也无法join分表粒度不同的表(水平), 结果原本一次查询就能够完成的业务,可能需要多次查询才能完成。

5、分片扩容

水平分片之后,一旦需要做扩容时。需要将对应的数据做一次迁移,成本代价都极高的。

6、ID生成

分库分表后由于数据库独立,原有的基于数据库自增ID将无法再使用,这个时候需要采用其他外部的ID生成方案。

一、应用层依赖类(JDBC)

这类分库分表中间件的特点就是和应用强耦合,需要应用显示依赖相应的jar包(以Java为例),比如知名的TDDL、当当开源的 sharding-jdbc 、蘑菇街的TSharding等。

此类中间件的基本思路就是重新实现JDBC的API,通过重新实现 DataSource PrepareStatement 等 *** 作数据库的接口,让应用层在 基本 不改变业务代码的情况下透明地实现分库分表的能力。

中间件给上层应用提供熟悉的JDBC API,内部通过 sql解析 sql重写 sql路由 等一系列的准备工作获取真正可执行的sql,然后底层再按照传统的方法(比如数据库连接池)获取物理连接来执行sql,最后把数据 结果合并 处理成ResultSet返回给应用层。

优点

缺点

二、中间层代理类(Proxy)

这类分库分表中间件的核心原理是在应用和数据库的连接之间搭起一个 代理层 ,上层应用以 标准的MySQL协议 来连接代理层,然后代理层负责 转发请求 到底层的MySQL物理实例,这种方式对应用只有一个要求,就是只要用MySQL协议来通信即可。

所以用MySQL Navicat这种纯的客户端都可以直接连接你的分布式数据库,自然也天然 支持所有的编程语言

在技术实现上除了和应用层依赖类中间件基本相似外,代理类的分库分表产品必须实现标准的MySQL协议,某种意义上讲数据库代理层转发的就是MySQL协议请求,就像Nginx转发的是>

随着中国信息产业自主可控的趋势越来越强,服务器的国产化、安全化成为一个重要的议题,在这样的需求下,边缘计算技术受到了愈加广泛的关注。

边缘计算是指将计算资源放置在更靠近设备或用户的位置,对于数据中心来说,这就是位于网络边缘的系统。通常,系统会连接到距离用户或设备一定距离的云服务。通过将数据处理移到边缘,减少等待时间,大部分数据在用户或设备附近进行处理。实现该功能的主要硬件便是边缘计算服务器,因此边缘计算服务器具有实时性、智能性以及安全性等优点。

实时性

边缘计算服务器能够处理在“边缘”形成的数据。就以现在充满争议的“自动驾驶”为例,其实自动驾驶汽车本身就是一台高性能计算机,它需要通过大量的传感器来收集数据。为了安全可靠地运行,它需要迅速对周围的环境做出反应,处理速度有任何延迟都有可能是致命的。如果只利用传统的云计算,虽然数据处理主要是在云端进行,但在中央服务器之间来回传送数据可能需要几秒钟的时间,这对于自动驾驶来说所需时间太长了。而边缘计算服务器能够在“即时计算”的需求下,让自动驾驶汽车在车辆端更快速地处理数据成为可能,不需要在车辆和云端之间来回传输数据。

智能性

利用边缘计算技术,网络里面有大量的功能在边缘节点就可以直接处理掉。传统的架构一些功能都需要回到中央服务器处理,但是现在在边缘就能直接处理并返回对应的结果,这一特性可以满足多种场景的需要,例如:身份验证,日志过滤,数据整合,图像处理和 TLS(>

安全性

边缘计算服务器使终端提取数据无需再传输到云端加工,降低了终端敏感数据隐私泄露的风险,实现了数据的“阅后即焚”,极大保护了用户隐私数据,同时也降低了中央服务器受外界入侵的可能性。

凭借这些独特的优势,边缘计算服务器未来前景广阔,潜在的应用包括自动驾驶汽车、增强现实(AR)、店内个性化营销、人工智能(AI)、大数据分析、制造和IoT设备等。

SDN技术的应用场景

SDN网络能力开放化的特点,使得网络可编程,易快捷提供的应用服务,网络不再仅仅是基础设施,更是一种服务,SDN的应用范围得到了进一步的拓展。下面是我带来的SDN的五大应用场景,希望对你有帮助!

针对网络的主要参与实体进行梳理后,SDN的应用场景基本聚焦到电信运营商、政府及企业客户、数据中心服务商以及互联网公司。关注的SDN应用场景主要聚焦在:数据中心网络、数据中心间的互联、政企网络、电信运营商网络、互联网公司业务部署。

场景1:SDN在数据中心网络的应用

数据中心网络SDN化的需求主要表现在海量的虚拟租户、多路径转发、VM(虚拟机)的智能部署和迁移、网络集中自动化管理、绿色节能、数据中心能力开放等几个方面。

SDN控制逻辑集中的特点可充分满足网络集中自动化管理、多路径转发、绿色节能等方面的要求;SDN网络能力开放化和虚拟化可充分满足数据中心能力开放、VM的智能部署和迁移、海量虚拟租户的需求。

数据中心的建设和维护一般统一由数据中心运营商或ICP/ISP维护,具有相对的封闭性,可统一规划、部署和升级改造,SDN在其中部署的可行性高。数据中心网络是SDN目前最为明确的应用场景之一,也是最有前景的应用场景之一。

场景2:SDN在数据中心互联的应用

数据中心之间互联网的网络具有流量大、突发性强、周期性强等特点,需要网络具备多路径转发与负载均衡、网络带宽按需提供、绿色节能、集中管理和控制的能力。如下图所示的SDN技术在多数据中心互联场景下的应用架构图所示,引入SDN的网络可通过部署统一的控制器来收集各数据中心之间的流量需求,进而进行统一的计算和调度、实施带宽的灵活按需分配、最大程度优化网络、提升资源利用率。

目前Google已经在其数据中心之间应用了SDN技术,将数据中心之间的链路利用率提升至接近100%,成效显著。

场景3:SDN在政企网络中的应用

政府及企业网络的业务类型多,网络设备功能复杂、类型多,对网络的安全性要求高,需要集中的管理和控制,需要网络的灵活性高,且能满足定制化需求。

SDN转发与控制分离的架构,可使得网络设备通用化、简单化。SDN将复杂的业务功能剥离,由上层应用服务器实现,不仅可以降低设备硬件成本,更可使得企业网络更加简化,层次更加清晰。同时,SDN控制的逻辑集中,可以实现企业网络的集中管理与控制,企业的安全策略集中部署和管理,更可以在控制器或上层应用灵活定制网络功能,更好满足企业网络的需求。

由于企业网络一般由企业自己的信息化部门复杂建设、管理和维护,具有封闭性,可统一规划、部署和升级改造,SDN部署的可行性高。

场景4:SDN在电信运营商网络的应用

电信运营商网络包括了宽带接入层、城域层、骨干层等层面。具体的网络还可分为有线网络和无线网络,网络存在多种方式,如传输网、数据网、交换网等。总的来说,电信运营商网络具有覆盖范围大、网络复杂、网络安全可靠性要求高、涉及的网络制式多、多厂商共存等特点。

SDN的转发与控制分离特点可有效实现设备的逐步融合,降低设备硬件成本。SDN的控制逻辑集中特点可逐步实现网络的集中化管理和全局优化,有效提升运营效率,提供端到端的`网络服务;SDN的网络能力虚拟化和开放化,也有利于电信运营商网络向智能化,开放化发展,发展更丰富的网络服务,增加收入。

例如NTT和德国电信都开始试验部署SDN,其中NTT搭建了很快日本和美国的试验环境,实现网恋过虚拟化,并故那里跨数据中心的WAN网络;而德国电信在云数据中心、无线、固定等接入环境使用SDN。

但是,SDN技术目前尚不够成熟,标准化程度也不够高。大范围、大量网络设备的管理问题,超大规模SDN控制器的安全性和稳定性问题,多厂商的协同和互通问题,不同网络层次/制式的协同和对接问题等均需要尽快得到解决。目前SDN技术在电信运营商网络大规模应用还难以实现,但可在局部网络或特定应用场景逐步使用,如移动回传网络场景、分组与光网络的协同场景等。

场景5:SDN在互联网公司业务部署中的应用

SDN即软件定义网络,然而笔者认为SDN的研究重点不应放在软件如何定义网络,而应在于如何开放网络能力。网络的终极意义在于为上层应用提供网络服务,承载上层应用。NaaS是网络的最终归宿。互联网公司业务基于SDN架构部署,将是SDN的重要应用场景。

SDN具有网络能力开放的特点,通过SDN控制器的北向接口,向上层应用提供标准化、规范化的网络能力接口,为上层应用提供网络能力服务。ICP/ISP可根据需要获得相应的网络服务,有效提升最终用户的业务体验。

国内企业如腾讯、百度等都在加快SDN的实验室部署,例如腾讯,利用SDN实现差异化的路径计算、流量控制和服务,为用户提供更好体验。

;

蓝海大脑液冷服务器事业部杨博士认为:GPU、FPGA、DSA、ASIC等引擎同构并行的系统。处理引擎/芯片是非图灵完备的,是作为CPU的加速。所以,其他处理引擎的并行计算系统即为CPU+XPU的异构并行,大体分为三类:
1 CPU+GPU。CPU+GPU是目前最流行的异构计算系统,在HPC高性能计算、图形图像处理以及AI训练/推理等场景得到广泛应用,蓝海大脑水冷工作站、液冷服务器就是基于CPU+GPU的液冷解决方案。
2 CPU+FPGA。目前数据中心流行的FaaS服务,利用FPGA的局部可编程能力,基于FPGA开发运行框架,以及借助第三方ISV支持或自研的方式,构建面向各种应用场景的FPGA加速解决方案。
3 CPU+DSA。谷歌TPU是第一个DSA架构处理器,TPUv1采取独立加速的方式,实现CPU+DSA(TPU)的方式实现大数据的异构并行。

当前,为推进IT支撑系统集约化建设和运营,进一步发挥集中化能力优势,IT云成为运营商IT支撑系统建设的基础架构。但在IT云资源池部署过程中,服务器技术面临多个新挑战,主要体现在以下3个方面。


在性能方面,人工智能(AI)应用快速扩张,要求IT云采用高性能GPU服务器。AI已在电信业网络覆盖优化、批量投诉定界、异常检测/诊断、业务识别、用户定位等场景规模化应用。AI应用需求的大量出现,要求数据中心部署的服务器具有更好的计算效能、吞吐能力和延迟性能,以传统通用x86服务器为核心的计算平台显得力不从心,GPU服务器因此登上运营商IT建设的历史舞台。


在效率成本方面,IT云部署通用服务器存在弊端,催生定制化整机柜服务器应用需求。在IT云建设过程中,由于业务需求增长快速,IT云资源池扩容压力较大,云资源池中的服务器数量快速递增,上线效率亟需提高。同时,传统通用服务器部署模式周期长、部署密度低的劣势,给数据中心空间、电力、建设成本和高效维护管理都带来了较大的挑战。整机柜服务器成为IT云建设的另一可选方案。


在节能方面,AI等高密度应用场景的快速发展,驱动液冷服务器成为热点。随着AI高密度业务应用的发展,未来数据中心服务器功率将从3kW~5kW向20kW甚至100kW以上规模发展,传统的风冷式服务器制冷系统解决方案已经无法满足制冷需求,液冷服务器成为AI应用场景下的有效解决方案。


GPU服务器技术发展态势及在电信业的应用


GPU服务器技术发展态势


GPU服务器是单指令、多数据处理架构,通过与CPU协同进行工作。从CPU和GPU之间的互联架构进行划分,GPU服务器又可分为基于传统PCIe架构的GPU服务器和基于NVLink架构的GPU服务器两类。GPU服务器具有通用性强、生态系统完善的显著优势,因此牢牢占据了AI基础架构市场的主导地位,国内外主流厂商均推出不同规格的GPU服务器。


GPU服务器在运营商IT云建设中的应用


当前,电信业开始推动GPU服务器在IT云资源池中的应用,省公司现网中已经部署了部分GPU服务器。同时,考虑到GPU成本较高,集团公司层面通过建设统一AI平台,集中化部署一批GPU服务器,形成AI资源优化配置。从技术选型来看,目前运营商IT云资源池采用英伟达、英特尔等厂商相关产品居多。


GPU服务器在IT云应用中取得了良好的效果。在现网部署的GPU服务器中,与训练和推理相关的深度学习应用占主要部分,占比超过70%,支撑的业务包括网络覆盖智能优化、用户智能定位、智能营销、智能稽核等,这些智能应用减少了人工投入成本,提升了工作效率。以智能稽核为例,以往无纸化业务单据的人工稽核平均耗时约48秒/单,而AI稽核平均耗时仅约5秒/单,稽核效率提升达 90%。同时,无纸化业务单据人工稽核成本约15元/单,采用GPU进行AI稽核成本约0048元/单,稽核成本降低达968%。


整机柜服务器发展态势及在电信业的应用


整机柜服务器技术发展态势


整机柜服务器是按照模块化设计思路打造的服务器解决方案,系统架构由机柜、网络、供电、服务器节点、集中散热、集中管理6个子系统组成,是对数据中心服务器设计技术的一次根本性变革。整机柜服务器将供电单元、散热单元池化,通过节约空间来提高部署密度,其部署密度通常可以翻倍。集中供电和散热的设计,使整机柜服务器仅需配置传统机柜式服务器10%的电源数量就可满足供电需要,电源效率可以提升10%以上,且单台服务器的能耗可降低5%。


整机柜服务器在运营商IT云建设中的应用


国内运营商在IT云建设中已经推进了整机柜服务器部署,经过实际应用检验,在如下方面优势明显。


一是工厂预制,交付工时大幅缩短。传统服务器交付效率低,采用整机柜服务器将原来在数据中心现场进行的服务器拆包、上架、布线等工作转移到工厂完成,部署的颗粒度从1台上升到几十台,交付效率大大提升。以一次性交付1500台服务器为例,交付工作量可减少170~210人天,按每天配10人计算,现场交付时间可节省约17~21天。


二是资源池化带来部件数量降低,故障率大幅下降。整机柜服务器通过将供电、制冷等部件资源池化,大幅减少了部件数量,带来故障率的大幅降低。图1比较了32节点整机柜服务器与传统1U、2U服务器机型各自的电源部件数量及在一年内的月度故障率情况。由于32节点整机柜服务器含10个电源部件,而32台1U通用服务器的电源部件为64个,相较而言,整机柜电源部件数减少844%。由于电源部件数量的降低,32节点整机柜服务器相对于32台1U通用服务器的月度故障率也大幅缩减。



三是运维效率提升60%以上。整机柜服务器在工厂预制机柜布线,网络线缆在工厂经过预处理,线缆长度精确匹配,理线简洁,接线方式统一规范,配合运维标签,在运维中可以更方便简洁地对节点实施维护 *** 作,有效降低运维误 *** 作,提升运维效率60%以上,并大幅减少发生故障后的故障恢复时间。


液冷服务器技术发展态势及在电信业的应用


液冷服务器技术发展态势


液冷服务器技术也称为服务器芯片液体冷却技术,采用特种或经特殊处理的液体,直接或近距离间接换热冷却芯片或者IT整体设备,具体包括冷板式冷却、浸没式冷却和喷淋式冷却3种形态。液冷服务器可以针对CPU热岛精确定点冷却,精确控制制冷分配,能真正将高密度部署带到前所未有的更高层级(例如20kW~100kW高密度数据中心),是数据中心节能技术的发展方向之一,3种液冷技术对比如表1所示。




液冷服务器在运营商IT建设中的应用


液冷服务器技术目前在我国仍处于应用初期,产业链尚不完备、设备采购成本偏高、采购渠道少、电子元器件的兼容性低、液冷服务器专用冷却液成本高等问题是液冷服务器尚未大规模推广的重要原因。从液冷服务器在运营商数据中心领域的具体应用案例来看,运营商在IT云资源池规划和建设过程中,通常会对液冷服务器的发展现状、技术成熟度等进行分析论证。


考虑到目前液冷服务器规模化应用尚处于起步阶段,需要3~5年的引入期,因此暂时未在IT云资源池建设中进行大规模落地部署,但在部分地区有小规模应用,如中国移动南方基地数据中心已经开展液冷服务器试点应用,中国联通研究院也在开展边缘数据中心服务器喷淋式液冷系统的开发。未来,随着IT云建设规模、建设密度的继续攀升,以及液冷产业生态体系的逐步成熟,液冷服务器在IT云建设中将有更大的应用空间。


总体来看,运营商IT云资源池建设对服务器计算性能、延迟、吞吐、制冷、定制化、分布式部署等方面都提出了更高要求。未来,GPU服务器、定制化整机柜服务器、液冷服务器等新兴服务器技术将快速迭代,为运营商数据中心服务器技术的发展和演进带来新的思路和路径。

服务器应用非常广泛,既可以作为简单的Web服务器单独使用,也可以与其他产品(如OSS、CDN等)搭配提供强大的多媒体解决方案。以下是服务器的典型应用场景。
企业官网、简单的Web应用
网站初始阶段访问量小,只需要一台低配置的云服务器ECS即可运行应用程序、数据库、存储文件等。随着网站发展,您可以随时提高服务器的配置,增加服务器数量,无需担心低配服务器在业务突增时带来的资源不足问题。
多媒体、大流量的APP或网站
服务器与对象存储OSS搭配,将OSS作为静态、视频、下载包的存储,以降低存储费用,同时配合CDN和负载均衡,可大幅减少用户访问等待时间、降低带宽费用、提高可用性。
数据库
支持对I/O要求较高的数据库。使用较高配置的I/O优化型服务器同时采用SSD云盘,可实现支持高I/O并发和更高的数据可靠性。也可以采用多台稍微低配的I/O优化型服务器,搭配负载均衡,实现高可用架构。
访问量波动大的APP或网站
某些应用,如12306网站,访问量可能会在短时间内产生巨大的波动。通过使用d性伸缩,实现在业务增长时自动增加服务器,并在业务下降时自动减少服务器,保证满足访问量达到峰值时对资源的要求,同时降低了成本。如果搭配负载均衡,则可以实现高可用架构。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10465629.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-08
下一篇2023-05-08

发表评论

登录后才能评论

评论列表(0条)

    保存