分布式计算存储架构设计方案.ppt

上传人(卖家):晟晟文业 文档编号:4145656 上传时间:2022-11-14 格式:PPT 页数:47 大小:2.43MB
下载 相关 举报
分布式计算存储架构设计方案.ppt_第1页
第1页 / 共47页
分布式计算存储架构设计方案.ppt_第2页
第2页 / 共47页
分布式计算存储架构设计方案.ppt_第3页
第3页 / 共47页
分布式计算存储架构设计方案.ppt_第4页
第4页 / 共47页
分布式计算存储架构设计方案.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、分布式架构设计分布式架构设计主题主题目录目录概念普及1架构演变2SOA服务治理(Dubbo)3项目重构体系4项目管理体系5概念普及概念普及1.性能、并发性能、并发瓶颈瓶颈问题问题 2.缓存缓存、算法、算法、性能性能 3.监控监控(安全、性能(安全、性能)4.数据库、文件服务系统、消息服务数据库、文件服务系统、消息服务5.集群、集群、负载负载、容错、代理、注册中心、容错、代理、注册中心 6.持续持续集成、集成、部署部署概念普及概念普及-1性能、并发性能、并发瓶颈瓶颈问题问题 概念普及概念普及-2缓存缓存、算法、锁、算法、锁、性能性能 v缓存缓存客户端缓存、web代理(Squid)边缘缓存(CDN

2、)平台缓存(EHcache,Cacheonix,Voldemort,JBoss Cache)应用缓存(memcached、Redis)、数据库缓存v算法算法线性结构与顺序表、单向链表、循环链表、栈的基本概念链式堆栈、中缀表达式、队列、链式队列、串、MyString矩阵类、递归算法、哈夫曼树、希尔排序、Hash算法等内容等v锁概念锁概念数据库,共享锁、悲观所、乐观锁、排他、读写等、锁的粒度JAVA,自旋锁、悲观锁、乐观锁、对象锁等v性能性能应用划分系统层次、算法层次、代码层次调优分层设计调优、代码调优、内存调优、数据库调优、操作系统调优概念普及概念普及-3监控监控(安全、性能(安全、性能)监控基

3、本分网路监控、系统监控。涉及监控基本分网路监控、系统监控。涉及CPU、内存、磁盘、网、内存、磁盘、网络流量、系统进程及络流量、系统进程及Swap状态的多种性能指标状态的多种性能指标Zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源运维平台,也是目前国内互联网用户中使用最广的监控软件。Nagios是一款开源的企业级监控系统 Cache)。阿里云监控是一款免费网站监控产品,可监控站点和服务器,并提供多种告警方式:短信,旺旺,邮件。百度云观测是百度推出的一款云服务产品,类似于360云监控、阿里云监控,主要是为站长提供免费的一站式网站监测、预警服务,功能覆盖网站运行状况、

4、安全和访问速度等多个方面。概念普及概念普及-4数据库数据库 GraphDB概念普及概念普及-5集群、集群、负载负载、容错、代理、注册中心、容错、代理、注册中心概念普及概念普及-6持续持续集成、集成、部署部署 1、开发流程阶段:编码-构建-集成-测试-交付-部署2、需要具备:自动化测试、版本控制工具(Git,CVS,SVN 等);自动化的构建和软件发布流程(Jenkins)3、持续集成的优点:快速(减少大量重复工作)、稳定、安全 Docker结合结合Jenkins的持续构建的持续构建方案方案 架构演变架构演变前言前言 v 单架构问题单架构问题复杂应用的开发维护成本变高,部署效率逐渐降低团队协作效

5、率差,部分公共功能重复开发,代码重复率居高不下系统可靠性变差维护和定制困难新功能上线周期变长v 分布式架构优势分布式架构优势廉价高效消除单故障点平衡负载、提高应用的性能降低耦合度拆分,分而治之架构演变架构演变-1初始阶段架构初始阶段架构 特征:应用程序、数据库、文件等所有的资源都在一台服务器上架构演变架构演变-2应用服务和数据服务分离应用服务和数据服务分离 特征:应用程序、数据库、文件分别部署在独立的资源上架构演变架构演变-3使用缓存改善性能使用缓存改善性能 特征:数据库中访问较集中的一小部分数据存储在缓存服务器中,减少数据库的访问次数,降低数据库的访问压力架构演变架构演变-4使用应用服务器集

6、群使用应用服务器集群特征:多台服务器通过负载均衡同时向外部提供服务,解决单台服务器处理能力和存储空间上限的问题架构演变架构演变-5数据库读写分离数据库读写分离特征:多台服务器通过负载均衡同时向外部提供服务,解决单台服务器处理能力和存储空间上限的问题,数据读写瓶颈得到缓解架构演变架构演变-6反向代理和反向代理和CDN加速加速特征:采用CDN和反向代理加快系统的 访问速度架构演变架构演变-7分布式文件系统和分布式数据库分布式文件系统和分布式数据库特征:数据库采用分布式数据库,文件系统采用分布式文件系统架构演变架构演变-8使用使用NoSQL和搜索引擎和搜索引擎特征:系统引入NoSQL数据库及搜索引擎

7、架构演变架构演变-9业务拆分业务拆分特征:系统上按照业务进行拆分改造,应用服务器按照业务区分进行分别部署架构演变架构演变-10分布式服务分布式服务特征:公共的应用模块被提取出来,部署在分布式服务器上供应用服务器调用架构演变架构演变-11结论要点结论要点 v 空间换时间空间换时间多级缓存、静态化、索引v并行与分布式计算并行与分布式计算任务切分、分而治之多进程、多线程并行执行v多维度的可用多维度的可用负载均衡、容灾、备份读写分离依赖关系v伸缩伸缩拆分、无状态v资源优化利用资源优化利用系统容量有限原子操作与并发控制基于逻辑的不同,采取不一样的策略容错隔离、资源释放SOA服务治理(服务治理(Dubbo

8、)-1什么是什么是DubboDubbo是是Alibaba开源的分布式服务框架,它最大的特点开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(服务提供方(Provider)和服务消费方()和服

9、务消费方(Consumer)两)两个角色个角色。Dubbox是是Dubbo升级版,现当当技术团结任在升级版,现当当技术团结任在维护的版本。国外比较有影响力的类似服务维护的版本。国外比较有影响力的类似服务Spring Cloud。SOA服务治理(服务治理(Dubbo)-2什么是什么是Dubbov 分布式服务框架分布式服务框架 远程服务调用 Netty/Mina/Grizzly RMI/Hessian/WebService 服务动态发现 Zookeeper/Redis 集群软负载均衡 Random/RoundRobin 集群失败容错 Failover/Failbackv服务治理平台服务治理平台 依

10、赖关系与关键路键 服务路由与动态配置 服务降级与资源劣化 权重调节与容量评估 服务授权与黑白名单 服务SLA与流程管理 服务测试与Mock 服务文档与负责人 SOA服务治理(服务治理(Dubbo)-3为什么使用为什么使用Dubbov 优点:优点:远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。软负载均衡及容错机制:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。可在内网替代F5等硬件负载均衡器,降低成本,减少单点。服务自动注册与发现:基于注册中心目录服务,使服务消费方

11、能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。提供完善的管理控制台dubbo-admin与简单的控制中心dubbo-monitor。Dubbo提供了伸缩性很好的插件模型,很方便进行扩展。支持多协议。v 使用方法使用方法Dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入。只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。SOA服务治理(服务治理(Dubbo)-4Dubbo服务框架服务框架-1ServiceConsumerDubboRegistryServiceProviderDubbo Invo

12、kerDubbo Exporter2.启动时订阅服务地址1.启动时注册服务地址4.随机调用一个服务地址,失败重试另一地址3.变更时推送服务地址列表DubboMonitor5.后台定时采集服务调用次数和调用时间等信息长连接短连接SOA服务治理(服务治理(Dubbo)-5Dubbo服务框架服务框架-2SOA服务治理(服务治理(Dubbo)-6Dubbo服务框架服务框架-3v服务接口层(服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。v配置层(配置层(Config):对外配置接口,以ServiceConfig和ReferenceConf

13、ig为中心,可以直接new配置类,也可以通过spring解析配置生成配置类。v服务代理层(服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton,以ServiceProxy为中心,扩展接口为ProxyFactory。v服务注册层(服务注册层(Registry):封装服务地址的注册与发现,以服务URL为中心,扩展接口为RegistryFactory、Registry和RegistryService。可能没有服务注册中心,此时服务提供方直接暴露服务。v集群层(集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心,扩

14、展接口为Cluster、Directory、Router和LoadBalance。将多个服务提供方组合为一个服务提供方,实现对服务消费方来透明,只需要与一个服务提供方进行交互。v监控层(监控层(Monitor):RPC调用次数和调用时间监控,以Statistics为中心,扩展接口为MonitorFactory、Monitor和MonitorService。v远程调用层(远程调用层(Protocol):封将RPC调用,以Invocation和Result为中心,扩展接口为Protocol、Invoker和Exporter。Protocol是服务域,它是Invoker暴露和引用的主功能入口,它负责

15、Invoker的生命周期管理。Invoker是实体域,它是Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。v信息交换层(信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心,扩展接口为Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer。v网络传输层(网络传输层(Transport):抽象mina和netty为统一接口,以Message为中心,扩展接口为Channe

16、l、Transporter、Client、Server和Codec。v数据序列化层(数据序列化层(Serialize):可复用的一些工具,扩展接口为Serialization、ObjectInput、ObjectOutput和ThreadPool。SOA服务治理(服务治理(Dubbo)-6Dubbo服务框架服务框架-4SOA服务治理(服务治理(Dubbo)-7无侵入透明调用无侵入透明调用v 暴露服务:暴露服务:v 引用服务:引用服务:SOA服务治理(服务治理(Dubbo)-8常用配置常用配置SOA服务治理(服务治理(Dubbo)-9谁在用谁在用Dubbo?(外部外部)2011年底开源SOA服务

17、治理(服务治理(Dubbo)-10谁在用谁在用Dubbo?(内部内部)1000+应用,2000+服务10,000,000,000+调用/天SOA服务治理(服务治理(Dubbo)-11为什么要服务化?为什么要服务化?v提升业务建模效率统一领域模型规范依赖关系划分问题边界v提升开发部署效率降低代码干扰减少合并冲突加速项目编译强契约逻辑复用方便替换实现v提升线上集群效率缩小集群规模,小规模增加机器收益最高分离串行因素,使多数集群并行因子增大垂直拆分应用,减少瓶颈资源竞争功能降级,故障隔离SOA服务治理(服务治理(Dubbo)-12服务框架设计原则服务框架设计原则 复用度+稳定度+抽象度模块分包原则

18、微核+插件+平等+一致框架扩展原则 服务域+实体域+会话域模型划分原则 声明式API+过程式SPI+分离接口分离原则 拦截+事件+共享+防御组件协作原则 开闭+增量+高阶功能演进原则项目重构体系项目重构体系-1项目技术项目技术msql5.7 读写分离,阿里自带 kafka、kestrel 消息(待定)elasticSearch、Solr 搜索引擎(待定)python3.0 脚本(统计、爬虫)tomcat 7 容器 nginx1.4 反向代理 shiro 权限 jenkins 待定 docker 待定 netty Jdk 7 版本 Spring 4.2 管理器 mybatis 3.4 持久模板

19、dubbox-2.8.0 服务治理 zookeeper-3.4.6 代理中心 logback 1.1.7 日志插件 redis3.0 缓存集群 mongoDB 3.2 文件系统集群 hadoop、hbase(大数据分类)项目重构体系项目重构体系-2项目规划项目规划 v 项目标准项目标准分布式方案基于Dubbox的SOA服务治理标准WEB框架(SSM)采用比较前沿稳定的插件技术v 服务拆分服务拆分用户中心(账号、用户信息)消息中心(短信、邮件、微信消息)支付中心(微信支付、支付宝等三方支付)代理中心微信营销中心任务调度中心v 优化功能优化功能组件性能优化、缓存使用数据库分表分库、读写分离项目重构

20、体系项目重构体系-3项目命名项目命名规则规则 v标准名称标准名称web层,形如 xlhy-projectName projectName采用lowerCamelCase风格,比如 xlhy-admin(后台管理)支付中心服务层,实现层xlhy-paymentCenter;对应接口层xlhy-paymentCenter-apivlowerCamelCaselowerCamelCase(CamelCase的一部分)是一种命名惯例,它的名字是由多个和在一起的词组合成的一个单词且它们的每个词(除了第一个词以外)的第一个字母大写。另一种变形是UpperCamelCase,第一个词Upper使得它与low

21、erCamelCase 名字容易地能很容易的区别出来。(名字来自于CamelCase 名字里的像驼峰一样出现的字母。)CamelCase的优点是在任何计算机系统里字母都是连续的(中间没有空格),这样可以用一列描述性的词来取有含义的名字而且还不会违反命名限制。项目重构体系项目重构体系-4项目包结构项目包结构 com.xlhy.project-name.web.action 请求控制器请求控制器 com.xlhy.project-name.web.filter 过滤器过滤器 com.xlhy.project-name.web.interceptor 拦截器拦截器 com.xlhy.project-

22、name.service 业务逻辑接口业务逻辑接口 com.xlhy.project-name.service.impl 业务逻辑实现业务逻辑实现 com.xlhy.project-name.persistence.dao 数据访问接口数据访问接口 com.xlhy.project-name.persistence.dao.file 文件访问实现文件访问实现 com.xlhy.project-name.persistence.dao.mysql mysql数据库访问实现数据库访问实现 com.xlhy.project-name.persistence.dao.http http接口访问实现接口

23、访问实现 com.xlhy.project-name.persistence.dao.hbase hbase访问实现访问实现 com.xlhy.project-name.persistence.dao.redis redis访问实现访问实现 com.xlhy.project-name.persistence.dao.kafka kafka的访问实现的访问实现 com.xlhy.project-name.persistence.dao.mongodb mongodb访问访问 com.xlhy.project-name.persistence.cache 缓存接口缓存接口 com.xlhy.pro

24、ject-name.persistence.cache.redis redis缓存实现(缓存实现(redis作为作为cache使用)使用)com.xlhy.project-name.persistence.cache.memcache memcache缓存实现缓存实现 com.xlhy.project-name.utils 工具类(公用工具提交有公共工具类(公用工具提交有公共jar包实现,特定项目工具可以放在自己项目)包实现,特定项目工具可以放在自己项目)com.xlhy.project-name.bean pojo对象,简单对象,简单javabean对象对象 com.xlhy.project

25、-name.job 定时任务定时任务 com.xlhy.project-name.queuedeal 队列处理队列处理项目重构体系项目重构体系-5项目结构项目结构 pom.xml src main java com resources ibatis projectNameFunctionIbatis.xml projectNameSqlMapConfig.xml spring applicationContext.xml applicationContext-hbase.xml applicationContext-kafka.xml applicationContext-mysql.xml

26、applicationContext-redis.xml applicationContext-service.xml applicationContext-projectName.xml xlhy-projectName.properties log4j.properties webapp WEB-INF web.xml index.jsp项目重构体系项目重构体系-6Dubbo服务结构目录服务结构目录 v实现层项目名称实现层项目名称 xlhy-paymentCenter pom.xml src main java com resources ibatis projectNameFunctio

27、nIbatis.xml projectNameSqlMapConfig.xml spring applicationContext.xml applicationContext-hbase.xml applicationContext-projectName.xml xlhy-projectName.properties log4j.properties项目重构体系项目重构体系-7Dubbo服务结构目录服务结构目录 v接口层项目名称接口层项目名称 xlhy-paymentCenter-api pom.xml src main java com bean IpaymentCenterServic

28、e项目重构体系项目重构体系-7Web层引用结构目录层引用结构目录 v接口层项目名称接口层项目名称 xlhy-admin pom.xml src main java com resources spring applicationContext.xml applicationContext-hbase.xml applicationContext-kafka.xml applicationContext-redis.xml applicationContext-service.xml applicationContext-projectName.xml xlhy-projectName.prop

29、erties log4j.properties webapp WEB-INF web.xml index.jsp项目重构体系项目重构体系-7pom.xml规范规范 项目重构体系项目重构体系-8spring反射类模式使用反射类模式使用 项目项目管理管理体系体系-1管理管理目的目的就是为了简单就是为了简单项目项目管理管理体系体系-2我们管理方式我们管理方式v 项目管理项目管理命名规范、编码规范统一接口标准定期审查代码优化功能、扩展组件v 文档管理文档管理记录技术要点提供标准接口信息v 文档系统文档系统ShowDoc一个非常适合IT团队的技术文档工具文档地址:http:/192.168.10.48Thanks结束结束

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(分布式计算存储架构设计方案.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|