是需要配置多个连接,还是只配置主rds就可以?
                                                                                                                                                                                                 回复内容:                                                                                  是需要配置多个连接,还是只配置主rds就可以?
通常写走主rds,读走只读rds。
如果是php,通常mvc的框架只要配置一下就行了。
比如thinkphp,读的时候可以指定使用某个rds,也可以随机一个rds
以下是代码(看不懂就看注释吧):
    /**     * 连接分布式服务器     * @access protected     * @param boolean $master 主服务器     * @return void     */    protected function multiconnect($master=false) {        foreach ($this->config as $key=>$val){            $_config[$key]      =   explode(',',$val);        }                // 数据库读写是否分离        if(c('db_rw_separate')){            // 主从式采用读写分离            if($master)                // 主服务器写入                $r  =   floor(mt_rand(0,c('db_master_num')-1));            else{                if(is_numeric(c('db_slave_no'))) {// 指定服务器读                    $r = c('db_slave_no');                }else{                    // 读操作连接从服务器                    $r = floor(mt_rand(c('db_master_num'),count($_config['hostname'])-1));   // 每次随机连接的数据库                }            }        }else{            // 读写操作不区分服务器            $r = floor(mt_rand(0,count($_config['hostname'])-1));   // 每次随机连接的数据库        }        $db_config = array(            'username'  =>  isset($_config['username'][$r])?$_config['username'][$r]:$_config['username'][0],            'password'  =>  isset($_config['password'][$r])?$_config['password'][$r]:$_config['password'][0],            'hostname'  =>  isset($_config['hostname'][$r])?$_config['hostname'][$r]:$_config['hostname'][0],            'hostport'  =>  isset($_config['hostport'][$r])?$_config['hostport'][$r]:$_config['hostport'][0],            'database'  =>  isset($_config['database'][$r])?$_config['database'][$r]:$_config['database'][0],            'dsn'       =>  isset($_config['dsn'][$r])?$_config['dsn'][$r]:$_config['dsn'][0],            'params'    =>  isset($_config['params'][$r])?$_config['params'][$r]:$_config['params'][0],            'charset'   =>  isset($_config['charset'][$r])?$_config['charset'][$r]:$_config['charset'][0],                    );        return $this->connect($db_config,$r);    }
   
 
   