/**
  * 测试分布式数据库的配置方法
  */
 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
 }
Exemple #2
0
<?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();
Exemple #4
0
<?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();