mysql的读写分离

1、laravel实现数据库读写分离配置或者多读写分离配置

config\database.php里配置
'connections' => array(
     //默认mysql配置,访问test库
    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => '192.168.16.70',
        'port'      =>  '3306',
        'database'  => 'test',
        'username'  => 'test',
        'password'  => '123456',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
    //自定义mysql连接,访问media库
    'media' => array(
        'read' => array(
            array('host' => '192.168.16.74','port' => 3306),
            array('host' => '192.168.16.70','port' => 3306),
        ),
        'write' => array(
            'host' => '192.168.16.70', 'port'=> 3306
        ),
        'driver'    => 'mysql',
        'database'  => 'media',
        'username'  => 'test',
        'password'  => '123456',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
 
2、为什么要用Amoeba?

解释:目前要实现mysql的主从读写分离,主要有以下几种方案:

1、  通过程序实现,网上很多现成的代码,比较复杂,如果添加从服务器要更改多台服务器的代码。

2、  通过mysql-proxy来实现,由于mysql-proxy的主从读写分离是通过lua脚本来实现,目前lua的脚本的开发跟不上节奏,而写没有完美的现成的脚本,因此导致用于生产环境的话风险比较大,据网上很多人说mysql-proxy的性能不高。

3、  自己开发接口实现,这种方案门槛高,开发成本高,不是一般的小公司能承担得起。

4、  利用阿里巴巴的开源项目Amoeba来实现,具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库,并且安装配置非常简单。
具体配置:访问-----http://www.cnblogs.com/lhj588/archive/2012/11/19/2777897.html 博客     
posted @ 2016-09-01 19:52  limeng951  阅读(166)  评论(0编辑  收藏  举报