我的编程空间,编程开发者的网络收藏夹
学习永远不晚

部署Amoeba3.X实现Mysql读写

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

部署Amoeba3.X实现Mysql读写

项目介绍:

   Amoeba for Mysql软件,致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与Client、DB之间,对客户端透明。具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。

实验环境:

Master:192.168.0.1

Slave1:192.168.0.2

Slave2:192.168.0.3

Amoeba:192.168.0.4


均在Amoeba机器上操作

安装JDK,Amoeba for mysq是基于JAVA环境开发的,所以系统要支持JAVA

wget http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64-rpm.bin
chmod +x jdk-6u45-linux-x64-rpm.bin
./jdk-6u45-linux-x64-rpm.bin


配置JAVA环境

JKD默认安装到/usr/java/下

创建软链接

ln -s /usr/java/jdk1.6.0_45 /usr/java/jdk

编辑~/.bash_profile,添加以下内容

JAVA_HOME=/usr/java/jdk
export JAVA_HOME
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export PATH


安装Amoeba for mysql

wget http://jaist.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/3.x/amoeba-mysql-3.0.5-RC-distribution.zip
unzip  amoeba-mysql-3.0.5-RC-distribution.zip
mv amoeba-mysql-3.0.5-RC /usr/local/amoeba

Amoeba到此就安装完毕,接下来就是配置读写分离,因为Amoeba3.x较2.x有较大改动,所以贴下我的配置项。

首先,设置conf/dbServer.xml中连接的库名及帐号密码

<dbServer name="abstractServer" abstractive="true">
- - - - - 省略 - - - - - -               
            <!-- mysql port -->
            <property name="port">3306</property>
                                                                                                                                                                                                                                                                                                                           
            <!-- mysql schema -->
            <property name="schema">数据库名</property>
                                                                                                                                                                                                                                                                                                                           
            <!-- mysql user -->
            <property name="user">账号</property>
                                                                                                                                                                                                                                                                                                                           
            <property name="password">密码</property>
- - - - - - - - - 省略 - - - - - - -
    </dbServer>

    设置数据库池,其中Slave1,Slave2作轮询

<dbServer name="Master"  parent="abstractServer">
        <factoryConfig>
            <!-- mysql ip -->
            <property name="ipAddress">192.168.0.1</property>
        </factoryConfig>
    </dbServer>
                                                                                                                                                                                                                                                                                                             
    <dbServer name="Slave1"  parent="abstractServer">
        <factoryConfig>
            <!-- mysql ip -->
            <property name="ipAddress">192.168.0.2</property>
        </factoryConfig>
    </dbServer>
    <dbServer name="Slave2"  parent="abstractServer">
        <factoryConfig>
            <!-- mysql ip -->
            <property name="ipAddress">192.168.0.3</property>
        </factoryConfig>
    </dbServer>
    <dbServer name="VirtualPool" virtual="true">
        <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
            <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->
            <property name="loadbalance">1</property>
                                                                                                                                                                                                                                                                                                                     
            <!-- Separated by commas,such as: server1,server2,server1 -->
            <property name="poolNames">Slave1,Slave2</property>
        </poolConfig>
    </dbServer>

接下来配置amoeba.xml

<property name="authenticateProvider">
- - - - - - 省略 - - -                   
                    <property name="user">账号</property>
                                                                                                                                                                                                                                                                                                                
                    <property name="password">密码</property>
                                                                                                                                                                                                                                                                                                                
                    <property name="filter">
       - - - - - - 省略 - - -
            </property>
<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
    - - - - - - 省略 - - - - -   
        <property name="defaultPool">Master</property>
        <property name="writePool">Master</property>
        <property name="readPool">VirtualPool</property>
    - - - - - - 省略 - - - - -
    </queryRouter>

读写分离到此配置完成,接着启动amoebe

/usr/local/amoeba2/bin/launcher


在部署Amoeba时,注意下

1:防火墙要开放8066端口

2:给bin目录执行权限:chmod +x bin/*

优化性能:

1:在amoeba目录下有个JVM的配置文件,设置其中的JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"可提升JVM性能,具体大小看各位需求;

2:多线程配置:runtime元素;

3:网络相关(缓冲区等):connectionFactory

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

部署Amoeba3.X实现Mysql读写

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

部署Amoeba3.X实现Mysql读写

项目介绍:    Amoeba for Mysql软件,致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与Client、DB之
2023-01-31

mysql读写分离实现方式

mysql 读写分离可通过两种方式实现:基于代理的:使用代理路由读写请求,配置简单、可扩展,但复杂度较高。基于主从复制的:复制写请求到从服务器,读请求从从服务器读取,配置简单、性能高,但可扩展性有限。MySQL 读写分离的实现方式读写分离
mysql读写分离实现方式
2024-08-01

Python中如何实现MySQL的读写分离读写以提高性能?(在Python中如何配置MySQL实现读写分离读写?)

Python实现MySQL读写分离,将数据库划分为读写和只读服务器,提高性能和可用性。步骤包括:创建专用连接、使用游标、确定操作类型、选择适当连接和游标、执行数据库操作、关闭连接。优点包括提高性能、增加可用性、数据一致性。缺点是延迟和配置复杂性。
Python中如何实现MySQL的读写分离读写以提高性能?(在Python中如何配置MySQL实现读写分离读写?)
2024-04-02

mysql 基于mysql-proxy实现读写分离

mysql 读写分离读写分离首先不推荐使用,很多业务场景也没有必要,不仅增加技术复杂度,而且可能会导致读到落后的数据,建议优化数据库,推荐使用keepalive+mysql双主复制的方案然后mysql-proxy是官方推出的中间件,不仅无法高可用,而且这个项目
mysql 基于mysql-proxy实现读写分离
2015-08-29

php+mysql如何实现读写分离

这篇“php+mysql如何实现读写分离”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php+mysql如何实现读写分离”文
2023-07-05

编程热搜

目录