Amoeba的使用及单机多MySQL数据库的配置.docx_第1页
Amoeba的使用及单机多MySQL数据库的配置.docx_第2页
Amoeba的使用及单机多MySQL数据库的配置.docx_第3页
Amoeba的使用及单机多MySQL数据库的配置.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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,1719行):图3.2.12 数据切分配置接下来就可以看到垂直切分的效果,当把数据写入violation表时,Amoeba会到master1上执行,而当把数据写入location表时,将会到master2上执行。上面的配置皆可完成基于Amoeba的数据垂直切分。数据水平切分Amoeba提供了非常友好的数据切分规则表达式,同时Amoeba也允许开发人员增加新的规则函数,数据水平切分的粒度是行。在本系统中,我 们根据account表中的AUTHORITY字段进行水平切分,我们将插入的数据分成两类,一类是AUTHORITY=1,另一类是 AUTHORITY=0。具体的配置如图3.2.12第516行。在配置文件中,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安装文件的方式实现。假设电脑中已经安装一个MySQL服务(作为主服务器 master),安装目录为D:MySQL Server 5.1。此时复制MySQL Server 5.1目录下的所有安装文件至一个新的目录,以E:MySQL Server 5.1目录为例说明,把它作为从服务器slave。首先修改从服务器的配置文件,即E:MySQL Server 5.1目录下的my.ini文件。用记事本打开,修改client下的port=3307(区别主服务的端口,避免冲突),修改mysqld下的 port=3307,basedir=E:/MySQL Server 5.1/,datadir=E:/Program Files/MySQL/MySQL Server 5.1/data/,innodb_data_home_dir=E:/MySQL Datafiles/,其中innodb_data_home_dir自行设置路径 ,datadir为数据的存储路径,根据自己的data文件夹位置自行设置,主服务器的data文件夹默认在C:Documents and SettingsAll UsersApplication DataMySQLMySQL Server 5.1目录下。然后在命令行窗口下进入以下目录E:MySQL Server 5.1bin后,执行以下命令mysqld install mysql_slave,其中mysql_slave为服务名。操作如图:图3.2.13 安装MySQL服务接着在注册表找到HKEY_LOCAL_MACHINE SYSTEMCurrentControlSet Services

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论