分布式架构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.Spring Cloud
Spring Cloud是一系列框架的有序集 合。它利用Spring Boot的开发便利 性巧妙地简化了分布式系统基础设 施的开发,如服务发现注册、配置 中心、消息总线、负载均衡、断路 器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部 署。
3. 1 Dubbo
垂直分片 混合分片
2.2 分布式数据库的体系结构
1.数据分配
分割分配 全复制分配 混合分配 2.数据分片
水平分片
垂直分片 混合分片
2.3 分布式数据库组件
1. 全局数据库管理系统(获取连接,解析分片,协调全局事务执行)
2.全局数据字典(维护分片规则,完整性约束,事务统计)
3.局部数据库管理系统(执行操作,心跳检测) 4.通信管理系统(全局与局部,分片之间的通信)
2.4 分布式数据库查询
ห้องสมุดไป่ตู้1.单节点类 2.跨节点类
2.4 分布式数据库查询
查询下发
1.单节点类 2.跨节点类
2.4 分布式数据库查询
获取数据
1.单节点类 2.跨节点类
3. 分布式框架
1.Dubbo
一款分布式服务框架 高性能和透明化的RPC(Remote Procedure Call)远程服务调用方案 SOA(service-oriented architecture)服 务治理方案
水平分片
垂直分片 混合分片
2.2 分布式数据库的体系结构
1.数据分配
分割分配 全复制分配 混合分配 2.数据分片 按行拆分
水平分片
垂直分片 混合分片
2.2 分布式数据库的体系结构
1.数据分配
分割分配 全复制分配 混合分配 2.数据分片
将一张表的数据按字段拆分成多个表,减少更新对磁盘造成的影响
水平分片
1.8 使用NoSQL和搜索引擎
特征: 系统引入NoSQL数据库及搜索引擎。 描述: 随着业务越来越复杂,对数据存储 和检索的需求也越来越复杂,系统 需要采用一些非关系型数据库如 NoSQL和分数据库查询技术如搜索 引擎。
1.9 业务拆分
特征: 系统上按照业务进行拆分改造,应 用服务器按照业务区分进行分别部 署。 描述: 为了应对日益复杂的业务场景,通 常使用分而治之的手段将整个系统 业务分成不同的产品线,应用之间 通过超链接建立关系,也可以通过 消息队列进行数据分发,当然更多 的还是通过访问同一个数据存储系 统来构成一个关联的完整系统。
特征: 应用程序、数据库、文件分别部署在独立的资源上。
描述: 数据量增加,单台服务器性能及存储空间不足,需要将应 用和数据分离,并发处理能力和数据存储空间得到了很大 改善。
1.3 使用缓存改善性能
特征: 数据库中访问较集中的一小部分数据存储在缓存服务器中, 减少数据库的访问次数,降低数据库的访问压力。
1.分布式架构的发展
2.分布式数据库 3.分布式框架
1.分布式架构的发展
通常我们认为静态网页HTML的网站速度是最快的,但是自从有了动态网页之后,很多交互数 据都从数据库查询而来,数据也是经常变化的,除了一些新闻资讯类的网站,使用HTML静态化来 提高访问速度是不太现实的方案。我们不得不在代码与数据库之间寻求一种更合适的解决方案。 减少数据库访问次数,文件和数据库分离,大数据分布式存储,服务器的集群负载均衡, 页面缓存的使用,NoSql内存数据库代替关系型数据库,这些方案措施都是提高系统高并发性能的 关键
描述: 网站使用缓存之后,绝大多数数据读操作都可以不通过 数据库完成,但是仍有一些读操作(缓存不明中,缓存 过期)和全部的写操作需要访问数据库,当网站访问量 大的时候,数据库因为负载压力大而成为瓶颈。
1.6 反向代理和CDN加速
特征: 采用CDN(Content Delivery Network)和反向代理加 快系统的 访问速度。
1.1 初始阶段架构
特征: 应用程序、数据库、文件等所有的资源都在一台服务器上。
描述: 通常服务器操作系统使用Linux,应用程序使用PHP开发, 然后部署在Apache上,数据库使用MySQL,汇集各种免 费开源软件以及一台廉价服务器就可以开始系统的发展之 路了。
1.2 应用服务和数据服务分离
描述: 使用集群是系统解决高并发、海量数据问题的常用手段。 通过向集群中追加资源,提升系统的并发处理能力,使得 服务器的负载压力不再成为整个系统的瓶颈。
1.5 数据库读写分离
特征: 主流数据库提供主从热备功能,通过配置主从关系,将 一台数据库中的数据更新同步到另一台服务器上,实现 读写分离,改善数据库负载压力。
2.2 分布式数据库的体系结构
1.数据分配
分割分配 全复制分配 混合分配 2.数据分片
水平分片
垂直分片 混合分片
2.2 分布式数据库的体系结构
1.数据分配
分割分配 全复制分配 混合分配 2.数据分片
水平分片
垂直分片 混合分片
2.2 分布式数据库的体系结构
1.数据分配
分割分配 全复制分配 混合分配 2.数据分片
描述: 系统访问特点遵循二八定律,即80%的业务访问集中在20% 的数据上。缓存分为本地缓存和远程分布式缓存,本地缓 存访问速度更快但缓存数据量有限,同时存在与应用程序 争用内存的情况。
1.4 使用应用服务器集群
特征: 多台服务器通过负载均衡同时向外部提供服务,解决单台 服务器处理能力和存储空间上限的问题。
Spring Cloud Zookeeper 实现注册中心
描述: 为了应付复杂的网络环境和不同地区用户的访问,通 过CDN和反向代理加快用户访问的速度,同时减轻后 端服务器的负载压力。CDN与反向代理的基本原理都 是缓存。
1.7 分布式文件系统和分布式数据库
特征: 数据库采用分布式数据库,文件系 统采用分布式文件系统。
描述: 任何强大的单一服务器都满足不了 大型系统持续增长的业务需求,数 据库读写分离随着业务的发展最终 也将无法满足需求,需要使用分布 式数据库及分布式文件系统来支撑。
Provider 暴露服务方称之为“服务提供者”。 Consumer 调用远程服务方称之为“服务消费者”。 Registry 服务注册与发现的中心目录服务称之为 “服务注册中心”。 Monitor 统计服务的调用次数和调用时间的日志 服务称之为“服务监控中心”。
3. 2 Spring Cloud
Spring Cloud Netflix 是对Netflix开发的一套分布式服务框架 的封装,包括服务的发现和注册,负载均衡、 断路器、REST客户端、请求路由等。 Spring Cloud Config 将配置信息中央化保存, 可以实现动态修 改配置文件 Spring Cloud Bus 分布式消息队列,是对Kafka, MQ的封装 Spring Cloud Security 对Spring Security的封装,并能配合 Netflix使用
2.分布式数据库
数据量变大之后的问题:
数据放不下 数据查不了 数据丢不起
集中式数据库的缺点:
通信开销大 系统可靠性差 性能差 可扩展性差
设计管理困难
2.1 分布式数据库的基本要求
1.数据分布性:数据分布在不同的机器,甚至不同的地域
2.数据统一性:整个系统在逻辑上一致
3.数据透明性:入口统一
4.数据安全性:单个节点的数据出现错误,不会影响整体 5.可扩展性:扩容 6.数据自治性:每个子系统能够独立的管理数据
相关文档
最新文档