分布式缓存与JavaEE

分布式缓存与JavaEE

ID:46525335

大小:1.95 MB

页数:56页

时间:2019-11-24

分布式缓存与JavaEE_第1页
分布式缓存与JavaEE_第2页
分布式缓存与JavaEE_第3页
分布式缓存与JavaEE_第4页
分布式缓存与JavaEE_第5页
资源描述:

《分布式缓存与JavaEE》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、分布式缓存与JavaEE---------介绍OracleCoherence日程安排•什么是缓存•为什么要用分布式缓存•分布式缓存的特性•OracleCoherence的介绍•其他的分布式缓存介绍•Terracotta,Memecached,MySQLCluster,Dynamo(Cassandra),JBossCache什么是缓存缓存的定义(在BIOS系统工程师眼里)缓存的定义(文件系统工程师)缓存的定义(磁盘驱动开发工程师)缓存的定义(Web工程师)JavaEE中的缓存•JSR107JCACH

2、E-JavaTemporaryCachingAPI•Jakarta的标准项目:CacheTaglib•缓存页面•缓存对象•ORM(Hibernate,Toplink)缓存•数据库层的缓存•业务对象的缓存缓存的原则以提高性能为目的维护缓存的代价要小于创建原始对象的代价如何提高系统的性能如何提高性能--各个层面的应用优化JavaEE应用编程JavaEE应用服务器Java虚拟机操作系统硬件(网卡,CPU,内存)(c)Copyright2010.OracleCorporation如何提高性能•横向扩展(ScalingOut)如何获得可扩展性•

3、纵向扩展(ScalingUp)•增加CPU,内存,升级到更强大昂贵的系统•但是受单台服务器的限制•横向扩展(ScalingOut)•增加节点,使用便宜的服务器•应用系统的复杂性(有状态的应用---无状态的应用)•无状态的应用几乎不存在•大多数的无状态的应用将状态放在数据库中•其实数据库更加难以扩展•ACID(很多Lock,读写一致性,写的持久性)•分布式数据库(集群数据库)机制复杂,价格昂贵数据库横向扩展方案--复制•Master用于写操作•Slave用于读操作•缓解Master的读操作•有不一致的时间窗口•不能解决大量写的操作数据库

4、横向扩展方案--集群•OracleRAC•共享存储•负载均衡读和写•数据库写需要同步到所有节点的内存中,大大增加了写的时间延迟•增加了资源竞争•节点数量有限制•读和写都不能理想的扩展数据库横向扩展方案--Sharding•Sharenothing•数据垂直分区•不同的节点放置不同的数据库•单个节点的处理能力有限制数据库横向扩展方案--Sharding•Sharenothing(Google,FaceBook,Flickr)•数据水平分区(MySQLCluster)•分区的逻辑和数据一致性保证放到数据访问层•数据迁移代价大•查询和统计变

5、得复杂,join操作是噩梦(数据冗余)•一个数据库操作可能转化为多个XA操作NOSQL方案•高并发读写,海量存储的需求增加•对数据一致性要求减少(最终一致性)•GFS,BigTable,MapReduce•Hadoop开源实现•Redis,Tokyo,Cassandra(SimpleDB),MongoDB,Hbase,CouchDB,Dynamo满足企业应用的需求•数据的严格一致性和事务性•传统的数据库开发模式•复杂的关联查询条件•高性能和高扩展性•大量的读写操作都是基于(PrimaryKey)的。•简单可行的解决方案--缓存为什么使

6、用分布式缓存?未使用缓存的应用使用非分布式缓存什么是分布式缓存未使用缓存的数据库开销使用分布式缓存的数据库开销Cache分布式缓存的特性?分布式系统的特性•数据分区技术•ConsistentHash•数据的一致性保证•集群的成员维护和失败检测•集中式管理还是分布式管理•错误恢复技术•临时故障和永久故障什么是Coherence?OracleCoherence•在内存中的数据网格(DataGrid)•水平扩展(Scaleout)的解决方案•消除数据库的性能瓶颈•(KeyValue对)的存储方案•开发工具包•纯Java1.4.2+的类库•纯

7、.Net1.1和2.0的客户端类库•无第三方包的依赖关系•不依赖于任何开源产品和项目•用于其它用途的库文件…•数据库和文件系统的集成•与TopLink和Hibernate的集成•与HttpSession管理,Spring之间的集成,…Coherence是为了解决性能问题•在一个分布式系统中,性能由很多因素决定:•CPU的快慢,算法的好坏,IO....•应用层的Cache•网络延迟•Cache,NearCache•网络带宽限制•获取大量数据,经过计算,存储到数据库•获取大量数据,经过计算,只显示一小部分•可扩展性•数据库的扩展性•并行计

8、算•海量数据分析Coherence是为了解决性能问题•许多典型应用的数据库查询是基于主键的查询,将这些查询放到Coherence缓存中,会大大降低数据库的负载•Coherence分布式Cache本身具有扩展性和高可用性,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。