高可扩展性数据库架构设计方法.docVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高可扩展性数据库架构设计方法 时宜 雅迅网络股份有限公司 [摘要]:软件系统的规模化运作对数据库存取性能提出了越来越苛刻的要求,本文在目前流行数据库软件自身尚不能提供包含分布式管理、存储、负载均衡的综合解决方案的条件下,研究如何从应用层面解决目前用户群体庞大的软件系统在数据库存取性能方面的瓶颈问题。本文分析了仅仅依赖数据库软件本身解决性能瓶颈问题的困难和局限性,利用分而治之的思想,在应用层引入了Sharding的概念,切实地分析解决了数据库的扩展问题。本文认为横向向外扩展方案优于垂直向上扩展,隐含“分而治之”思想的水平分割、垂直分割能有效解决数据库性能扩展问题,从而为大规模用户容量、高并发访问的软件系统的建设提供了一种切实可行的性能扩展方法。 [关键词]:数据库、性能扩展、Sharding、水平分割、垂直分割 引言 不管是通过终端零售,抑或是通过与实力雄厚的中间运营商进行合作,面向社会大众的个人消费类IT产品,想要形成利润,必须通过规模化运作才能完成。掌握着能够从单宗商品交易中获取高额利润的高端、重量级IT解决方案的厂商实在是为数不多。 而规模化运作对IT技术提出了越来越苛刻的要求。 虽然,在这个时代,已经有许多人提出了NoSQL数据库的概念,就是所谓的“去SQL化”。如Google提出的BigTable等技术。但对于许多系统而言,旧式的关系型数据库软件,依然是不可或缺的重要法宝。 可是,数据库不是银弹!简单地使用数据库软件,无法满足百万级、千万级用户的快速响应需求。 许多声称精通数据库编程的人们,他们所能做的只是: 在一台物理服务器上安装一个数据库软件 按照数据库理论设计一些符合范式要求的数据表 更进一步可能他们还会建立一些索引、存储过程、视图 使用ADO、ADO.NET、JDBC或更高级的技术去读写这个数据库 只是这些,受过正规训练的IT工作者在1~2年内应该能彻底掌握这些技术,他们可以用它来完成许多功能,但是这是最初级的层次。 对于正式的商用系统的架构设计者,千百万级的用户对系统性能的要求会迫使他们在数据库软件的使用方式上思考更多。 设计理念 向上扩展和向外扩展 在计算机的世纪里,如果谈到软件运行缓慢,性能不足,最容易联想到的方法是增加投入,提高硬件的配置,似乎性能问题便可得到解决。业内,我们把这个解决方法叫做“向上扩展”。 向上扩展即扩展到更大更强、也更昂贵的服务器上。需要特别指出的是,高端服务器极其昂贵,是购置同样处理能力和内存速度的多台服务器总和的很多倍。 向上扩展的成本非常高,同时它仍然无法回避下面这个问题。 中国有句古语云:“人力有时而穷”。事实上,“机”力也有时而穷。按照目前的技术,无法不计成本、无止境地提高单台服务器的性能。就像Intel在冲击4GHz主频后,选择了转向“多核”技术一样。 一般来说,大型系统倾向于向外扩展,因为从长期来看,即便是巨型数据库,最后也会不堪重负,向外扩展将让它们得以保留通过增加服务器以提升系统能力的后路,就像多核一样。向外扩展即部署大量相对便宜的服务器来分担数据库压力。 最后用一句话来总结,只要增长趋势存在,我们最后无论如何都要走上向外扩展的道路。 分而治之 数据库的向外扩展,其本质是“分而治之”的思想。 对于大型问题的求解,往往是将其分解为多个小问题,从而保证每个小问题都是更容易解决的,并且是可以同时解决的。 这一点容易在传统行业中得到验证,这就像建造一座50层楼高的摩天大厦,工作量自然是相当大的。如何完成这个任务,我们需要的是一支分工明确的建筑队伍,而不是一个超人。 在数据库的使用上,一样的,这里的大用户容量和高并发相当于一座50层楼高的摩天大厦,每一个数据库服务器就相当于一个建筑工人,我们需要的是分工明确的数据库集群,而不是一个超级、巨型的数据库。 数据库集群技术 常见数据库产品的集群技术 SQL Server系列 官方集群技术 严格地说来,微软的SQL Server系列有个非常大的弱点,它的集群技术主要是针对高可用性的,对负载均衡没有太大的作用。用户在实际中遇到性能问题时,如果向上扩展不能解决问题,没有合适的集群方案解决,就意味着要移植到其他平台上,如Oracle,采用RAC来解决。这将是一个即费财力、物力、人力,同时还要面临很大风险的一个艰难过程。但是又不得不走这条路,没有办法。 SQL Server Cluster 相对于单点来说Microsoft Cluster Server(MSCS)是一个可以提升可用性的技术,Microsoft称之为故障转移集群。 从硬件连接上看,很像Oracle的RAC,两个节点,通过网络连接,共享磁盘;事实上SQL Server数据库只运行在一个节点上,当出现故障时,另一个节点只是作为这个节点的备份: 因为始终只有一个节点在运行,在性能

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档