利用数据网格实现应用程序的无限可扩展

随着互联网的普及和WEB2.0技术的兴起,我们目前很多的B/S应用中都面临着不可预知的访问压力,为了应对这种压力,很多网站都采用了数据库集群、应用服务器集群来保证系统的可扩展性和响应时间,从当前的数据库发展来看,Oracle数据库集群采用的多机共享存储的方式,比较成熟,如果应用设计比较好的情况下,数据库集群的扩展性问题不大,但是应用服务器的集群由于实现技术的问题,还存在这样或者那样的问题,以前theserverside网站上有一篇文章谈应用服务器从单节点到集群应该注意的问题:

16312004_200903101346291.jpg

图1 数据库集群

1.      http session的处理问题:建议http sesssion要和具体的应用实现松耦合这样在应用服务器集群中实现http session同步才成为可能,但问题是,如果session的信息量比较大,集群中的服务器比较多时,http session的同步仍然会有问题。

2.      应用服务器中针对共享业务数据的处理,在集群当中,当集群发生切换,或者多个节点访问同一份数据时,第一个应用服务器必须把数据同步回数据库,然后第二个应用服务器再从数据库取出,当数据交叉访问比较大时,系统的效率难以保证。

其实说白了,上面两个问题的实质就是将数据信息和应用服务器实现松耦合,以保证系统的可扩展性,但在实现松耦合的同时,如何保证系统的效率不受损失呢?

16312004_200903101346292.jpg

图2 应用服务器集群

前几篇文章里提到了实时数据集成和数据网格,其实现的核心产品是Oracle收购tangosol的产品coherencecoherence实现的原理就是利用多台服务器上实现一个数据网格(或者说数据集群),将后台业务数据、session信息等等全部存储在内存中,一方面保证数据访问的高效性和数据存储的高可扩展性,另一方面可以实现多台机器的并行计算。通过coherence我们可以非常轻松的实现上面两个场景:

1.      针对后台数据的存储问题,我们可以通过coherence将后台数据全部缓存在coherence组成的数据网格中,数据网格可以和应用服务器共享一个虚拟机或者采用单独的虚拟机,这样一方面实现了应用服务器和业务数据的松耦合,另一方面,所有的业务数据都缓存在数据网格中,可以保证系统的高效数据访问。

16312004_200903101346293.jpg

图3 coherence数据网格负责后台数据的缓存

2.      针对http session的问题,我们可以将http session的管理从应用服务器中拿出来,由coherence组成的数据网格对其进行维护,这样session信息的同步就可以在数据网格中进行,从而可以使应用服务器的横向可扩展性摆脱session信息大小的限制。

16312004_200903101346294.jpg

图4 cohernece实现http session的缓存

下一篇blog我们会详细分析数据网格如何实现http session信息的维护。

fj.png1.JPG

fj.png2.JPG

fj.png3.JPG

fj.png4.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16312004/viewspace-566564/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16312004/viewspace-566564/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值