- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[Amoeba的使用及单机多MySQL数据库的配置
Amoeba的使用及单机多MySQL数据库的配置Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目。其主要功能包括读写分离,垂直分库,水平分库等。Amoeba For MySQL处于在应用和数据库之间,扮演一个中介的角色,它对客户端透明,能将应用传递过来的SQL语句经过分析后,根据配置文件路由到不同的数据库进行 适当的处理。Amoeba实现了简单的负载均衡(采用轮询算法)和Failover。本系统中该模块的体系结构如下图3.2.7所示:图3.2.7 分布式数据库结构下面介绍一下Amoeba for MySQL的配置:Server配置:配置统一的对外接口,即外界程序进行连接的虚拟的MySQL数据库。(amoeba IP)图3.2.8? 对外统一接口配置配置4个dbServer:需要至少配置一个dbServer,每个dbServer将是物理数据库Server的映射。图3.2.9? master1的配置上述配置实际是告诉虚拟MySQL数据库,它背后真正要去访问的是端口为3306,用户为root的MySQL数据库。本系统中,需要配置4个MySQL数据库。配置queryRouter:这里是读写分离的查询规则配置,如下图所示,读操作去连接slavePool,更新操作去连接masterPool。图3.2.10? query Router的配置主从结构的读写分离MasterPool:Master1、Master2主要进行写数据。SlavePool:Slave1、Slave2是两个平等的数据库,负责读数据和负载均衡。Amoeba提供了读写分离和负载均衡的配置方案。配置Slave1和Slave2形成一个虚拟的SlavePool,该配置可以提供负载均衡。配置如下:图3.2.11? slavePool配置在queryrouter属性中配置 writePool=masterPool,readPool=slavePool。那么遇到update、insert、delete等写语句时将 query发送到writePool,遇到select语句时将query发送到readPool中执行,且在执行select语句时,采用轮询算法,轮 流从slave1和slave2中读数据,达到负载均衡的效果。数据垂直切分垂直切分数据是按照系统要求,将不同类型的数据存放在不同的数据库或者服务器。在Amoeba中,数据垂直切分的粒度是表,因此在本系统中,将 表account、car_information、violation和location分别存放在两个数据库服务器上(Master1和 Master2)。在Amoeba的安装目录下的config/amoeba.xml配置文件中,启用ruleConfig配置。rule.xml配置文 件的部分内容如下(第5,17—19行):图3.2.12? 数据切分配置接下来就可以看到垂直切分的效果,当把数据写入violation表时,Amoeba会到master1上执行,而当把数据写入location表时,将会到master2上执行。上面的配置皆可完成基于Amoeba的数据垂直切分。数据水平切分Amoeba提供了非常友好的数据切分规则表达式,同时Amoeba也允许开发人员增加新的规则函数,数据水平切分的粒度是行。在本系统中,我 们根据account表中的AUTHORITY字段进行水平切分,我们将插入的数据分成两类,一类是AUTHORITY=1,另一类是 AUTHORITY=0。具体的配置如图3.2.12第5—16行。在配置文件中,parameters属性指的是sql表达式中的where条件中cloumn字段。例如:在rule1中,参数是AUTHORITY,表达式是AUTHORITY=1,相当于sql语句的select * from account where AUTHORITY=1。如果有多个属性,可采用逗号分隔。根据上面的水平切分规则:当有数据要插入account表时,如果AUTHORITY=1那么将数据插入到master1,如果 AUTHORITY=0,那么就把数据插入到master2中,当进行select查询时,则Amoeba将从master1和master2同时发起请 求,并将结果合并后返回给客户端。以上是对MySQL实施分布式的中间件Amoeba的配置介绍。除此之外,还需要对MySQL进行主从同步的配置,对此请参见相应版本的MySQL使用手册。本系统是在一台机器上启动四个MySQL实例来模拟多台数据库服务器。因此,还需要做一些配置,详细过程如下(不同版本略有不同,此处以5.1.39为例):在同一台电脑中安装多个mysql服务,不能通过安装多次双击mysql安装文件的方式实现。假
文档评论(0)