首页 > 网站建设 >

大型网站建设NoSQL数据库的伸缩性设计流程

发布时间:2018-11-10 作者:深圳网站建设

大型网站建设NoSQL数据库的伸缩性设计流程
  大型集群网站建设怎样进行NoSQL数据库的伸缩性设计,在计算机数据存储领域,一直是关系数据库(Relation Database)的天下,以至传统企业应用领域,许多应用系统设计都是面向数据库设计。先设计数据库然后设计程序,从而导致关系模型绑架对象模型,并由此引申出旷日持久的业务对象贫血模型与充血模型之争。网站建设公司业界为了解决关系数据库的不足,提出了诸多方案,比较有名的是对象数据库,但是这些数据库的出现只是进步证明关系数据库的优越而己直到大型网站遇到了关系数据库难以克服的缺陷,糟糕的海量数据处理能力及僵硬的设计约束,局面才有所改善。为了解决上述问题,NoSQL这概念被提了出来,以弥补关系数据库的不足。
  深圳网站建设公司提示您NoSQL,主要指非关系的、分布式的数据库设汁模式。也有许多专家将NoSQL解读为Not Only SQL,表示NoSQL只是关系数据库的补充而不是替代方案。一般而言,NoSQL数据库产品都放弃了关系数据库的两大重要基础:以关系代数为基础的结构化查询语言(SQL)和事务一致性保证(ACID)。而强化其他些大型网站更关注的特性:高可用性和可伸缩性。
  开源社区有各种NoSQL产品,其支持的数据结构和伸缩特胜也各不相同,目前看来,应用最广泛的是Apache HBase。
  HBase为可伸缩海量数据储存而设计,实现面向在线业务的实时数据防问延迟。HBase的伸缩性王要依赖其可分裂的HRegion及可伸缩的分布式文件系统HDFS实现。
  HBase的整体架构如图6-19所示。  HBase中,数据以HRegion为单位进行管理,也就是说应用程序如果想要访问一个数据,必须先找到HRegion,然后将数据读写操作提交给HRegion,由HRegion完成存储层面的数据操作。每一个HRegiou中存储段Key值区间Ekeyl,key2)的数
据,HRegionServer是物理服务器,每个HRegionServer上可以启动多个HRegion实例。当一个HRegion中写入的数据太多,达到配置的阀值时HRegion-/分裂成两个HRegion,并将HRegion在整个集群中进行迁移,以使HregionServer的负载均衡。
  所有HRegion的信息(存储的key值区间、所在HRegionServer地址、访问端口号等)都记录在HMaser服务器上,为了保证高可用,HBase启动多个HMaser,并通过Zookeeper(一个支持分布式致性的数据管理服务)选举出一个主服务器,应用程序通过Zookeeper获得主HMaser的地址,输入Key值获得这个key所在的HRegionServer地址,然后请求HRegionServer上的HRegion,获得需要的数据。调用时序如图6-20所示。
大型网站建设架构示意图6-20 HBase数据寻址过程时序图
  数据写入过程也是样,需要先得到HRegion才能继续操作,HRegion会把数据存储在若干个叫作HFile格式的文件中,这些文件使用HDFS分布式文件系统存储,在整个集群内分布并高可用。当个HRegion中数据量太多时,HRegion(连同HFile)会分裂成两个HRegion,并根据集群中服务器负载进行迁移,如果集群中有新加入的服务器,也就是说有了新的HRegionServer,由于其负载较低,也会把HRegion迁移过去并记录到HMaster,从而实现HBase的线性伸缩。
深圳网站建设公司小结
伸缩性架构设汁能力是网站架构师必须具备的能力
  伸缩陛架构设计是简单的,因为几乎所有稍有规模的网站都必须是可伸缩的,有很多案例可供借鉴,同时又有大量商业的、开源的提供伸缩性能力的软硬件产品可供选用。然而伸缩性设计又是复杂的,没有通用的、完美的解决方案和产品,网站伸缩性往往和可用性、正确性性能等结合在一起,改善伸缩性可能会影响些网站的其他特性,网站架构师必颂对网站的商业目标、历史演化、技术路线了然于胸,甚至还需要综合考虑技术团队的知识储备和结构、管理层的战略愿景和规划,才能最终做出对网站伸缩性架构最合适的决策。
  网站建设公司认为一个具有良好伸缩性架构设计的网站,其设计总是走在业务发展的前面。在业务需要处理更多访问和服务之前,就已经做好充足准备,当业务需要时,只需要购买或者租用服务器简单部署实施就可以了,技术团队亦可高枕无忧。反之,设计和技术走在业务的后面,采购来的机器根本就没办法加入集群,勉强加了进去,却发现瓶颈不在这里,系统整体处理能力依然上不去。技术团队每天加班,却总是拖公司发展的后腿。架构师对网站伸缩性的把握,一线之间,天堂和地狱。
  高手定律:这个世界只有遇不到的问题,没有解决不了的问题,高手之所以成为高手,是因为他们遇到了常人很难遇到的问题,并解决了。所以百度有很多广告搜索的高手,淘宝有很多海量数据的高手,QQ有很多高并发业务的高手,原因大抵如此。一个100万用户的网站,不会遇到l亿用户同时在线的问题; 一个拥有100万件商品网站的工程师,可能无法理解个拥有10亿件商品网站的架构。
  救世主定律:遇到问题,分析问题,最后总能解决问题。如果遇到问题就急匆匆地从外面挖个高手,然后指望高手如探囊取物般轻松搞定,最后怕是只有彼此抱怨和伤害。许多问题只是看起来样,具体问题总是要具体对待的,没有银弹,没有救世主。所以这个定律准确地说应该是“没有救世主定律”。好了,网站建设公司本文就到这里,喜欢本站的朋友请持续关注我们,谢谢,博纳网络编辑整理。
 
文章标题:大型网站建设NoSQL数据库的伸缩性设计流程
本文地址:https://www.198bona.com/news/1694.html
如果您觉得案例还不错请帮忙分享:

网站建设

网络推广

解决方案

域名主机

建站行业资讯