Phalcon框架如何实现读写分离

Phalcon框架如何实现读写分离

假设你已经在DI容器里注册了俩 db services,如下:

<?php

// 主库

$di->setShared('dbWrite', function() use ($config) {

    return new \Phalcon\Db\Adapter\Pdo\Mysql(array(

        "host" => $config->w_database->host,

        "username" => $config->w_database->username,

        "password" => $config->w_database->password,

        "dbname" => $config->w_database->name

    ));

});

//  从库VIP

$di->setShared('dbRead', function() use ($config) {

    return new \Phalcon\Db\Adapter\Pdo\Mysql(array(

        "host" => $config->r_database->host,

        "username" => $config->r_database->username,

        "password" => $config->r_database->password,

        "dbname" =>  $config->r_database->name

    ));

});

然后在 Model 中这么处理就可以了:

<?php

class UserModel extends \Phalcon\Mvc\Model {

    public function initialize() {

        parent::initialize();

        $this->setReadConnectionService('dbRead');

        $this->setWriteConnectionService('dbWrite');

    }

}

你可能感兴趣的:(读写分离)