对于一个具有海量数据的系统来说,性能的瓶颈最终就只能落在数据库身上了,这时候硬件升级和程序优化已经是无能为力,一个简单的查询也有可能给数据库带来沉重的负担。网格计算可把把一个需要巨大的计算能力才能解决的问题分割成许多小部分,然后把这些小部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终结果。对数据库进行网络计算的架构设计,无疑可能解决上述的性能问题。
那么怎么把一个巨大的数据库分割成许多小的数据库呢?现阶段比较行之有效的方法是对数据库进行分区处理。对于一个巨大容量的数据表,可不可以按日期,或者按类型,或者按区域,或者按ID号进行分割呢?答案是肯定的,这种分区方法也就是所谓的水平分区方法。另一方面,对于不同类型的数据,比如一个电子商务系统中的用户数据、商品数据、交易数据等,它们之间的联系不是很紧密,可以存放在不同的数据库中,这样就可实现了垂直分区。
经过分区处理,一个大的数据库,可以分成许多小的数据库。但是这样一来,对于这些小数据库的访问,和怎么进行综合处理,就引发出新的问题出来了。
在一个系统中,对这些数据库进行访问不是没有可能,使用多个连接,多重处理,无论在哪种框架中都很容易实现。问题是,在一个系统中分别对这些数据库进行访问,其程序的复杂度和处理效率,有可能会产生出另一个瓶颈,这就不是我们需要的结果了。当然也可以使用负载均衡设计,但是其程序的复杂度还是不可避免。
这里,再引进另一个概念:SOA架构,即面向服务的体系结构。SOA可以通过服务生产者/服务消费者的方式,或订阅/发布的方式等提供松散耦合的分布式服务体系。那么,对于各个不同区域的数据库,就可以按照SOA架构做成不同的服务中心,对外提供数据库访问接口。SOA可以使用CORBA、Web Service等方式予以实现。
这样一来,数据库服务器的压力分散了,程序计算的压力也分散了,不管数据库的数据量有多大,程序计算有多复杂,系统的性能都能得到最大限度的提升。
最后,大家可能会说,如果有一个网格数据库系统就好了,应用系统的设计就不用那么复杂了。是的,现在的数据库系统也有向这一方向设计的趋势,只是技术还没有成熟。相信在不久的将来,应该可以用到网格数据库。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
如何避免云计算与SOA冲突