/** * 测试分布式数据库的配置方法 */ public function testConfigBuilderDistDb() { $dcb = new LtDbConfigBuilder(); /** * 配置系统数据组 * 一个节点, 一主两从,分布在三台不同的机器上 */ $dcb->addHost("sys_group", "sys_node_1", "master", array("host" => "10.0.0.1", "password" => "123456", "dbname" => "sys_data", "schema" => "public", "adapter" => "pgsql")); $dcb->addHost("sys_group", "sys_node_1", "slave", array("host" => "10.0.0.2", "adapter" => "pdo_pgsql")); $dcb->addHost("sys_group", "sys_node_1", "slave", array("host" => "10.0.0.3")); /** * 配置用户数据组 * 两个节点 * 每个节点一主一从 * 都在同一台机器上,不同节点数据库名不同,主从服务器的端口不同 */ $dcb->addHost("user_group", "user_node_1", "master", array("host" => "10.0.1.1", "password" => "123456", "adapter" => "mysqli", "dbname" => "member_1")); $dcb->addHost("user_group", "user_node_1", "slave", array("port" => 3307)); $dcb->addHost("user_group", "user_node_2", "master", array("dbname" => "member_2")); $dcb->addHost("user_group", "user_node_2", "slave", array("port" => 3307)); /** * 配置交易数据组 * 三个节点 * 每个节点两台机器互为主从 */ $dcb->addHost("trade_group", "trade_node_1", "master", array("host" => "10.0.2.1", "password" => "123456", "adapter" => "oci", "dbname" => "finance", "schema" => "trade")); $dcb->addHost("trade_group", "trade_node_1", "master", array("host" => "10.0.2.2")); $dcb->addHost("trade_group", "trade_node_2", "master", array("host" => "10.0.2.3")); $dcb->addHost("trade_group", "trade_node_2", "master", array("host" => "10.0.2.4")); $dcb->addHost("trade_group", "trade_node_3", "master", array("host" => "10.0.2.5")); $dcb->addHost("trade_group", "trade_node_3", "master", array("host" => "10.0.2.6")); $this->assertEquals(array("sys_group" => array("sys_node_1" => array("master" => array(array("host" => "10.0.0.1", "port" => 5432, "username" => "root", "password" => "123456", "adapter" => "pgsql", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "sys_data", "schema" => "public", "connection_adapter" => "pgsql", "sql_adapter" => "pgsql")), "slave" => array(array("host" => "10.0.0.2", "port" => 5432, "username" => "root", "password" => "123456", "adapter" => "pdo_pgsql", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "sys_data", "schema" => "public", "connection_adapter" => "pdo", "sql_adapter" => "pgsql"), array("host" => "10.0.0.3", "port" => 5432, "username" => "root", "password" => "123456", "adapter" => "pdo_pgsql", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "sys_data", "schema" => "public", "connection_adapter" => "pdo", "sql_adapter" => "pgsql")))), "user_group" => array("user_node_1" => array("master" => array(array("host" => "10.0.1.1", "port" => 3306, "username" => "root", "password" => "123456", "adapter" => "mysqli", "charset" => "UTF-8", "pconnect" => false, "connection_ttl" => 30, "dbname" => null, "schema" => "member_1", "connection_adapter" => "mysqli", "sql_adapter" => "mysql")), "slave" => array(array("host" => "10.0.1.1", "port" => 3307, "username" => "root", "password" => "123456", "adapter" => "mysqli", "charset" => "UTF-8", "pconnect" => false, "connection_ttl" => 30, "dbname" => null, "schema" => "member_1", "connection_adapter" => "mysqli", "sql_adapter" => "mysql"))), "user_node_2" => array("master" => array(array("host" => "10.0.1.1", "port" => 3306, "username" => "root", "password" => "123456", "adapter" => "mysqli", "charset" => "UTF-8", "pconnect" => false, "connection_ttl" => 30, "dbname" => null, "schema" => "member_2", "connection_adapter" => "mysqli", "sql_adapter" => "mysql")), "slave" => array(array("host" => "10.0.1.1", "port" => 3307, "username" => "root", "password" => "123456", "adapter" => "mysqli", "charset" => "UTF-8", "pconnect" => false, "connection_ttl" => 30, "dbname" => null, "schema" => "member_2", "connection_adapter" => "mysqli", "sql_adapter" => "mysql")))), "trade_group" => array("trade_node_1" => array("master" => array(array("host" => "10.0.2.1", "port" => 1521, "username" => "root", "password" => "123456", "adapter" => "oci", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "finance", "schema" => "trade", "connection_adapter" => "oci", "sql_adapter" => "oracle"), array("host" => "10.0.2.2", "port" => 1521, "username" => "root", "password" => "123456", "adapter" => "oci", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "finance", "schema" => "trade", "connection_adapter" => "oci", "sql_adapter" => "oracle"))), "trade_node_2" => array("master" => array(array("host" => "10.0.2.3", "port" => 1521, "username" => "root", "password" => "123456", "adapter" => "oci", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "finance", "schema" => "trade", "connection_adapter" => "oci", "sql_adapter" => "oracle"), array("host" => "10.0.2.4", "port" => 1521, "username" => "root", "password" => "123456", "adapter" => "oci", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "finance", "schema" => "trade", "connection_adapter" => "oci", "sql_adapter" => "oracle"))), "trade_node_3" => array("master" => array(array("host" => "10.0.2.5", "port" => 1521, "username" => "root", "password" => "123456", "adapter" => "oci", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "finance", "schema" => "trade", "connection_adapter" => "oci", "sql_adapter" => "oracle"), array("host" => "10.0.2.6", "port" => 1521, "username" => "root", "password" => "123456", "adapter" => "oci", "charset" => "UTF-8", "pconnect" => true, "connection_ttl" => 3600, "dbname" => "finance", "schema" => "trade", "connection_adapter" => "oci", "sql_adapter" => "oracle"))))), $dcb->getServers()); //end $this->assertEquals }
<?php // Build DB Config array $dbConfigBuild = new LtDbConfigBuilder(); // 部署分布式数据库 $dbConfigBuild->addHost("Publish", "Admin", "master", array("adapter" => "pdo_mysql", "host" => 'localhost', "port" => '', "password" => "123456", "dbname" => 'projectdb')); $dbConfigBuild->addHost("Publish", "Admin", "slave", array("adapter" => "pdo_mysql", "host" => 'localhost', "port" => '', "password" => "123456", "dbname" => 'projectdb')); // 指定数据库配置数组 $config["db.servers"] = $dbConfigBuild->getServers();
<?php $dcb = new LtDbConfigBuilder(); $dcb->addHost("user_group", "user_node_1", "master", array("host" => "10.0.1.1", "password" => "123456", "adapter" => "mysqli", "dbname" => "member_1")); $dcb->addHost("group_1", "node_0", "master", array("adapter" => "sqlite", "host" => '/tmp/Lotus/DBSqlite/', "port" => '', "password" => "", "dbname" => 'sqlite_test0.db', 'pconnect' => '')); $dcb->addHost("group_1", "node_1", "master", array("adapter" => "pdo_sqlite", "host" => '/tmp/Lotus/DBSqlite/', "port" => '', "password" => "", "dbname" => 'sqlite_test1.db', 'pconnect' => '', 'sqlite_version' => 'sqlite2')); $dcb->addHost("group_8", "node_8", "master", array("adapter" => "mysql", "host" => 'localhost', "port" => '', 'username' => 'root', "password" => "123456", "dbname" => 'test')); $config["db.servers"] = $dcb->getServers();
<?php // Build DB Config array $dbConfigBuild = new LtDbConfigBuilder(); // 部署分布式数据库 $dbConfigBuild->addHost("WebIM", "Backend", "master", array("adapter" => "pdo_mysql", "host" => '10.0.247.179', "port" => '3306', "password" => "123456", "username" => 'odd_user', "dbname" => 'odd_db')); $dbConfigBuild->addHost("WebIM", "Backend", "slave", array("adapter" => "pdo_mysql", "host" => '10.0.247.179', "port" => '3306', "password" => "123456", "username" => 'odd_user', "dbname" => 'odd_db')); // 指定数据库配置数组 $config["db.servers"] = $dbConfigBuild->getServers();