java计算池技术架构.ppt_第1页
java计算池技术架构.ppt_第2页
java计算池技术架构.ppt_第3页
java计算池技术架构.ppt_第4页
java计算池技术架构.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java计算池技术规划,高可伸缩性Java集群,目录,背景,技术背景 目标 解决方案,技术要点解析 我们业务现状 业务解决方案 技术实施计划表,背景,越来越多的关键任务与大规模应用运行在Java EE技术上。 系统需要越来越高的高可用性(HA) 系统需要越来越好的可扩展性。 saas的发展和应用要求我们建设可伸缩,高可靠,高性能的计算环境运营架构 目前数商平台的基础架构还需要解决可伸缩性问题,技术背景,传统的Java应用服务器集群的方法 基于会话复制的水平扩展 基于会话粘滞的水平扩展 基于cache的集中式会话的水平扩展,基于会话复制的水平扩展,负载均衡器(lvs),应用服务器1 jboss,

2、数据库(mysql),应用服务器2 jboss,应用服务器3 jboss,会话复制,基于会话粘滞的水平扩展,负载均衡器(lvs),应用服务器1 jboss,数据库(mysql),应用服务器2 jboss,应用服务器3 jboss,会话粘滞,基于cache的集中式会话的水平扩展,负载均衡器(lvs),应用服务器1 jboss,数据库(mysql),应用服务器2 jboss,应用服务器3 jboss,中心会话服务器 memcached,传统应用服务器水平扩展对比,传统方法的问题,考虑一下这样的场景: 一台Web服务器可能驻留了很多Web应用,每个Web应用都同时有几百个并发用户,每个用户将生成特定

3、的浏览器会话。 所有这些会话信息都将被备份下来以防服务器实例失败。 更有甚者,会话时时刻刻都在改变:会话创建、过期;会话中的属性添加、修改与移除;为了判断会话何时过期,会话最后修改时间也随着访问时间而改变。 所以性能就成为会话失败转移解决方案中的关键问题。,目标,Java应用的计算进行池化 具有出色的扩展能力,计算能力的扩展能够线性增长或者减小 具有高可用性 不需要应用程序进行代码的定制 很好的失败转移能力 实现应用的无状态 培养综合的,高级的系统管理人员,目标,负载均衡器,负载均衡器,Java计算池,1,1,1,2,2,2,2,3,3,3,3,3,3,3,4,1,数据库池,1,1,2,3,3

4、,2,2,3,4,1,3,1,3,1,1,1,3,3,3,随着处理需求的增加,自动的填加服务器 随着实际处理能力的减少,自动的减少某个应用占用的处理资源 服务器可动态的增加和减少,达到运行时的平衡.,解决方案,技术要点,网络,千兆网络,分层 负载均衡-lvs Terracotta, JVM-level cluster 存储池-hadoop 数据库集群-Continuent,squeoia,mysql 自动化维护管理-cfengine+SVN 监控系统-分布式集群监控系统ganglia 管理系统,SVN/监控/配置引擎自动化管理,Java应用,LVS,入口,LVS,入口,Mysql/oracle

5、,数据集群中间件 服务器,Hadoop DataNode,Hadoop NameNode,Java应用,Java应用,JVM集群服务器terracotta服务集群,JVM集群服务器terracotta服务集群,Mysql/oracle,Mysql/oracle,Hadoop NameNode,Hadoop DataNode,Hadoop DataNode,数据集群中间件 服务器,存储池,DSO JVM,DSO JVM,DSO JVM,计算池系统架构,网络设计,网络结构是整个系统的基础保障 分层结构设计 外部应用网连接应用与外部用户,应用服务器接口eth1 内部应用网连接应用与数据库或存储,应用

6、服务器接口eth0, 数据库服务器接口eth1. 管理网络管理指令,监控通讯,物理上是与内部应用网复用,应用服务器接口eth0,数据库服务器接口eth0 远程控制网控制服务器启动状态,硬件状态监控,应用服务器远程控制接口,数据库服务器远程控制接口 IP网络规划 管理网IP,全网唯一,按机房机架位置分配,一一对应 远程控制网IP,与管理网IP一起整体规划 内部应用网IP,全网规划,按需分配 外部应用网IP,按需分栩 千兆交换/百兆交换 千兆交换能有效提高网络络处理速度 IDC机房出口速度的约束,可以百兆交换,用户,应用,数据库/存储,外部应用网,内部应用网,管理网,远程控制网,负载均衡LVS,负

7、载均衡用开源软件LVS实现 Heatbeat,ldirectord, ipvsadm 负载调度模式, 直接路由,IP隧道 对java应用池做负载均衡 设备需求 2台服务器,千兆网络,至少512MB内存,cpu不限,JVM集群解决方案,Terracotta 是企业级,开源,JVM级的集群解决方案.JVM级集群简化了企业JAVA应用,使得在多个JVM上的应用,就如同在一个JVM上运行一样. Terracotta扩展了java 的内存模型,包括了虚拟机的集群,运用无限量的堆,便得多个虚拟机之间能够作用 用Terracotta的应用集群的编程与开发单个应用一样,没有针对集群的特定代码. Terraco

8、tta 用字节码的处理方式,这种技术是目前许多 面向方面的开发框架,如AspectJ ,AspectWerkz,Terracotta, JVM-level cluster,会话集群的性能,传统应用结构的问题-瓶颈问题,Java应用集群架构Terracotta, JVM-level cluster,Scale-out,Java应用集群功能Terracotta, JVM-level cluster,功能 堆级的复制-共享几乎所有对象 ACID Replication - no new exceptions or error scenarios 中央存储- 保持应用的状态 通讯集中-集中管理共享对象

9、的通讯,没有多点通讯和裂脑产生 Virtual Memory - page in objects on demand Coordination - We have extended our support to wait / notify and other useful tools,App Server,Web App,JVM,DSO Libraries,Shared Objects,Terracotta Server Clustering the JVM,App Server,Web App,JVM,DSO Libraries,Shared Objects,App Server,Web A

10、pp,JVM,DSO Libraries,Shared Objects,集群中会话问题的解决方案对比,传统集群方法与terracotta方法的对比结论,通过基于JVM集群,terracotta方法能够实现具有线性扩展和高性能的Http会话集群 Terracotta 方法的优点: 线性扩展 明显的减少总拥有成本TCO 高性能集群解决方案 不需要改变应用程序, 网络效率没有序列化,只检测变化的区域进行传输 只在需要的地方进行数据的复制,Terracotta 分布式共享对象DSO架构,DSO不需要特殊的技术要求,就能够建立一个高可用的集群,并且对应用来说是完全透明的.比如,缓存和j2ee集群要求所有

11、的对象是序列化的,而DSO处理这些对象就当没有这些需求.正确配置的DSO能够认识和响应应用的计算状态的变化。图中,DSO处理应用程序的执行环境作为第1级缓存。它还提供了一个二级高速缓存,用于传播的计算状态的变化到所有其他节点,Hibernate 的解决方案GETTING MAXIMUM HIBERNATE PERFORMANCE WITH TERRACOTTA,今天,将对象数据映射成数据库的关系型格式是目前最普遍无状态应用的应用架构, 而Hibernate是最受欢迎的对象-关系映射方式。应用这样的设计,有两个原因。首先,数据库的扩展是已知的并且是可调的。第二,数据库的可用性要比应用服务器的可用

12、性更接近于5个9。 尽管这些原因,共享java应用状态的数据库开发人员和应用开发人员的负担还是很高的。 虽然Hibernate减轻了开发者在开发数据库接口上的工作量, Terracotta仍然降低了Hibernate对数据库高可用和可扩展性的依赖, Terracotta 和Hibernate结合简化了应用的开发和极大的提高应用程序的性能。这就是在某些方面降低总成本数量级的原因。,Hibernate的三种方案,Hibernate独立的Hibernate应用 Hibernate with the second level cache clustered by Terracotta for high

13、 availability,通过用Terracotta实现Hibernate的二级缓存 Hibernate with Hibernate-generated POJOs clustered by Terracotta in disconnected mode.通过用Terracotta实现独立的带有Hibernate生成系统的普通JAVA对象集群,Hibernate独立的Hibernate应用,如果我们的应用操作要成为无状态的,那么在每个请求开始的时候就要进行数据库的查询,当应用返回给用户的时候,会产生大量的更新。在下面的有三个应用服务器的例子中,工作流程上就会有6个JDBC的数据库调用。,H

14、ibernate with the second level cache clustered by Terracotta for high availability,在这个案例中,JDBC的调用已经从6个减到了4个。是因为有2个load是从cache得到,terracotta 实现了hibernate的内部二级缓存集群,使得所有节点表现的和一个节点一样。用terracotta,在扩展应用节点的时候,始终保持一致。 因为缓存了一个,就等于缓存了所有,所以不管是数据库用粘滞的负载均衡还是不用, Hibernates caches 将关闭转移负载功能,Hibernate with Hibernate

15、-generated POJOs clustered by Terracotta in disconnected mode.,对数据库的访问已经降为2个,前面三种方案的性能OPERATIONS THROUGHPUT,三种方案的商业价值对比,高峰时段5,000并发 10个应用服务器 Oracle 10g 单8路CPU 70%数据库利用率,传统架构挑战:高峰时段增加5,000并发 10个应用服务器不够,扩充到20 1个 Oracle 10g 8路CPU不够,扩充到2个的RAC, 投资增加:120万美元用于数据库,30万用于服务器,仍然用单个的8路CPU数据库服务器 数据库利用率下隆到30% 应用服

16、务器仍然用10个节点 Terracotta企业版和相关硬件花费50万美元 用Terracotta节省投资100万美元,Terracotta 能做什么,1) 堆级的复制:集群时需要拷贝的对象在堆之间进行 2) 超大的虚拟堆:由于是JVM层次的集群,所以堆要比单个JVM大很多 3) 多种集群锁语法:distributed wait/notify and synchronized 4) 运行实时监控 5) 无需序列化实现集群 6) Find-Grained Changes:由于集群时,terracotta不要求序列化,所以对象拷贝可以细化到对象中的每一个字段,就是说在进行复的时候,当对象发生变化的时

17、候,不需要整个对象进行拷贝,只需要拷贝发生变化的那个field。 HTTP Session Replication - Tomcat, Weblogic, Websphere,jboss,glassfish,Jetty, Geronimo Distributed Cache - from java.util.Hashmap to OSCache, we support it, Work/Manager Distributed Queries - Coordination is easy with Terracotta. We even have code to get you started

18、on the Terracotta Forge POJO Clustering/Spring integration- Everything from Spring Beans to java.util.HashMap Collaboration/Coordination - Use a queue, use distributed wait/notify, or even Cyclic Barrier (We love Cycle Barrier ) with Terracotta coordination across VMs is as easy as coordination acro

19、ss threads,Terracotta 能解决什么问题?,1) 如果运用了terracotta,我们现有的项目需要有哪些方面的修改? 由于terracotta运用了bytecode instrumentation的技术,所以我们现有的项目基本上不需要做任何修改。Terracotta提供一个配置文件tc-config.xml,我们只需要在这个配置文件里配置一些必须参数就可以实现集群 2) 性能的变化,把terracotta集成到项目后性能是否能有明显的提升? 3) Terracotta的扩展性。Terracotta是纯java编写的,源码开源,可以自己修改源代码进行扩展。 4) Terrac

20、otta相当一个中央服务器,那会不会terracotta出现single-point的问题呢?terracotta server本身支持集群,Terracota 集群架构,Terracotta集群设备需求,Terracotta服务器至少2台,实现主备高可用 配置建议: 双路CPU,8G内存,千兆网络. 应用服务器至少1台,随着数量的增加,性能也会随着线性增加. 配置建议: 双路CPU,4G内存,千兆网络,分布式文件存储-hadoop-HDFS,目前,存储超过1TB以上数据文件时,一般是采用DAS/NAS/SAN架构,此类架构存储几十TB以下数据还可以承受,但成本很高。 而若要以PB为单位,目前

21、是无法做到的,或者成本异常高。由于互联网的数据是海量的,一个大的网站的数据就可以达到并超过一个PB,因些传统的DAS/NAS/SAN 方式是不不参满足需要的。 HDFS是基于apache基金的Hadoop的核心分布式文件系统,也是Google的GFS思想基础上开发的开源系统。采用分布式存储,多份拷贝的技术架构,只使用普通服务器加普通硬盘的方式。,Hadoop HDFS 架构,分布式存储设备需求,元数据服务器,至少2台,双机冗余 文件副本服务器, 1台大容量存储服务器,开始时可以利用应用服务器做副本存储,规模扩大时再用专用的服务器做副本存储.,数据库集群,尽管Terracotta的应用能极大减少

22、对数据库的访问量,但业务应用的增加和数据量的增加使得我们仍然需要考虑数据库系统的高可用性,可伸缩性,高性能,低成本架构。 开源数据库集群中间件 squeoia 很好的实现高可用,性能扩展,失败恢复,易管理等特点.,数据库中间件架构,持续的数据可用CDA使用案例,使用数据复制来实现持续的数据可用 数据可用和业务的持续 工作负载和性能扩展 跨站点集群 异种数据传输 实时数据仓库 升级和牵移的零停机时间,数据库中间件架构设备需求,数据库中间件控制器 至少2台,保证数据库中件高可用 数据库服务器 至少2台,保证数据库高可用,增加数量提高性能.,自动化维护管理-cfengine+SVN,实现应用服务器集群的自动化安装,配置,变更 实现分布式存储集群Hadoop的自动化安装,配置,变更 实现数据库集群的自动化安装,配置,变更. 设备需求 管理服务器1台,千兆网络,分布式集群监控系统ganglia,Ganglia 是一个可扩展的分布式监控系统,主要是监控集群,网格等高性能计算集群.针对集群采用了分层设计. Ganglia监控软件主要是用来监控系统性能的软件,如:cpu 、me

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论