数据切分及整合方案.doc

数据切分及整合方案.doc

ID:51425160

大小:72.00 KB

页数:4页

时间:2020-03-24

数据切分及整合方案.doc_第1页
数据切分及整合方案.doc_第2页
数据切分及整合方案.doc_第3页
数据切分及整合方案.doc_第4页
资源描述:

《数据切分及整合方案.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据切分及整合方案14.5数据切分及整合方案通过前面的章节,已经清楚了通过数据库的数据切分可以极人地提高系统的扩展性。但是,数据库屮的数据经过垂玄和(或)水平切分被存放在不同的数据库主机之后,丿应用系统血临的最人问题就是如何让这些数据源得到较好的整合,可能这也是很多读者非常关心的一个问题。本节主要的内容就是分析各种可以帮助我们实现数据切分及数据整合的整体解决方案°数据的整合很难依靠数据库木身來达到,虽然MySQL存在Federated存储引擎,可以解决部分类似的问题,但是在实际应用场景屮却很难较好地运用。那该如何來整合这些分散在各个MySQL主机上的数据源呢?总

2、的來说,存在两种解决思路:(1)在每个应用程序模块屮配置管理自己需要的一个(或者多个)数据源,玄接访问各个数据库,在模块内完成数据的整合;(2)通过屮间代理层來统一管理所有的数据源,后端数据库集群对前端应用程序透可能90%以上的人在血•对这两种解决思路时都会倾向于选择第二种,尤其是系统不断庞人复杂的时候。确实,这是一个菲常正确的选择,虽然短期内须要付出的成木可能会相对犬一些,但对整个系统的扩展性來说,是非常有帮助的。所以,对于第一种解决思路就不过多分析了,下面重点分析第二种思路屮的一些解决方案。1.自行开发屮间代理层在决定逸择通过数据库的屮间代理层來解决数据源整

3、合的架构方向Z后,有不少公司(或考企业)自行开发了符合自身应用特定场景的代理层应用程序。口行开发中间代理层可以最人程度地应对口身应用的特点,最人化定制个性化需求,在血对变化的时候也可以灵活丿卫对。这应该是自行开发代理层最人的优势了。当然,选择自行开发,享受个性化定制最人化乐趣的同时,自然也需要投入更多的成本來进行前期研发及后期的持续升级改进工作,而且木身的技术门槛可能也比简单的Web应用史高。所以,在决定选择自行开发之前,仍须要进行比较全面的评估。由于口行开发史多时候考虑的是如何史好地适应自身应用系统,应对自身的业务场景,所以这里也不好分析太多。下面将主要分析当

4、前比较流行的几种数据源整合解决方案。2.利用MySQLProxy实现数据切分及整合MySQLProxy是MySQL官方提供的一个数据库代理层产品,和MySQLServer—样,它也是一个基于GPL开源协议的开源产品。可用來监视、分析或传输它们Z间的通讯信息。它的灵活性允许最人限度地使用它,日前具备的功能主要有连接路由、Query分析、Query过滤和修改、负载均衡,以及基本的HA机制等。实际上,MySQLProxy木身并不具有上述所有的功能,而是提供了实现上述功能的基础。要实现这些功能,还须要我们自行编写LUA脚木。MySQLProxy实际上是在客户端请求与My

5、SQLServer之间建立了一个连接池。所有客户端请求都发向MySQLProxy,然后经由MySQLProxy进行相应的分析,判断出是读操作还是写操作,分发至对应的MySQLServer上。对于多节点Slave集群,也UT以起到负载均衡的效果。如MySQLProxy基木架构图(图14-4):图14-4MySQLProxy架构通过上血的架构简图,可以清晰地看到MySQLProxy在实际应用屮所处的位置,以及能做的基本事情。MySQLProxy详细的实施细则在MySQL官方文档中有非常详细的介绍和示例,感兴趣的读者朋友可以百.接从MySQL官方网站免费下载或者在线阅

6、读,这里就不赘述。2.利川Amoeba实现数据切分及整合Amoeba是一个基于Java开发的,专注丁•解决分布式数据库数据源整合Proxy程序的开源框架,基于GPL3开源协议。目前,Amoeba已经具有Query路由、Query过滤、读写分离、负载均衡及.HA机制等相关内容,如图14-5所示。Amoeba主要解决以下儿个问题:(1)数据切分后复杂数据源整合;(2)提供数据切分规则并降低数据切分规则给数据库带來的影响;(3)降低数据库与客户端的连接数;(4)读写分离路由。图14-5AmoebaForMySQL架构可以看出,Amoeba所做的事情,正好就是通过数据切

7、分來提升数据库的扩展性所需要的。Amoeba并不是--个代理层的Proxy程序,而是一个开发数据库代理层Proxy程序的框架,目前基于Amoeba所开发的Proxy程序有AmoebaForMySQL和AmoebaForAladin两个。AmoebaForMySQL是专门针对MySQL数据库的解决方案,前端应川程序请求的协议及后端连接的数据源数据库都必须是MySQL。对于客八端的任何应用程序來说,AmoebaForMySQL和一个MySQL数据库没有什么区别,任何使用MySQL协议的客户端请求,都可以被AmoebaForMySQL解析并进彳J:相应的处理。Amoe

8、baFor可以告诉我们A

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

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

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