ホームページ  >  記事  >  PHPフレームワーク  >  laravel学習:マスター/スレーブの読み書き分離構成の実装

laravel学習:マスター/スレーブの読み書き分離構成の実装

不言
不言オリジナル
2018-08-08 16:16:243341ブラウズ

この記事の内容は、laravel の学習: マスターとスレーブの読み書き分離構成の実装に関するものです。必要な方は参考にしていただければ幸いです。

DBの接続ファクトリで次のコードを見つけます
.../vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php

/** 
 * Get the read configuration for a read / write connection. 
 * 
 * @param  array  $config 
 * @return array 
 */  
protected function getReadConfig(array $config)  
{  
    $readConfig = $this->getReadWriteConfig($config, 'read');  
      
    return $this->mergeReadWriteConfig($config, $readConfig);  
}  
  
/** 
 * Get a read / write level configuration. 
 * 
 * @param  array   $config 
 * @param  string  $type 
 * @return array 
 */  
protected function getReadWriteConfig(array $config, $type)  
{  
    if (isset($config[$type][0])) {  
        return $config[$type][array_rand($config[$type])];  
    }  
  
    return $config[$type];  
} 

/**
 * Merge a configuration for a read / write connection.
 *
 * @param  array  $config
 * @param  array  $merge
 * @return array
 */
protected function mergeReadWriteConfig(array $config, array $merge)
{
    return array_except(array_merge($config, $merge), ['read', 'write']);
}

ファクトリクラスは読み取りDBをランダムに取得して読み取りますこのことから、DB 構成は次のようにする必要があることが推測できます

'mysql' => [  
    'write'    => [  
        'host' => '192.168.1.180',  
    ],  
    'read'     => [  
        ['host' => '192.168.1.182'],  
        ['host' => '192.168.1.179'],  
    ],  
    'driver'    => 'mysql',  
    'database'  => 'database',  
    'username'  => 'root',  
    'password'  => '',  
    'charset'   => 'utf8',  
    'collation' => 'utf8_unicode_ci',  
    'prefix'    => '', 
]

拡張バージョン、複数のマスターと複数のスレーブをサポートし、独立したユーザー名とパスワードをサポートします。

MySQL の一般ログを開き、設定が有効かどうかを判断するために tail -f を使用してログの変更を監視します

おすすめ関連記事:

Laravel の機能テスト: テスト駆動開発 (コード付き)

以上がlaravel学習:マスター/スレーブの読み書き分離構成の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。