无为清净楼资源网 Design By www.qnjia.com
配置范例
'mysql' => [ 'driver' => 'mysql', 'write' => [ 'host' => '192.168.1.180', ], 'read' => [ ['host' => '192.168.1.182'], ['host' => '192.168.1.179'], ], ... ]
或
'mysql' => [ 'driver' => 'mysql', 'write' => [ 'host' => '192.168.1.180', ], 'read' => [ 'host' => [ '192.168.1.182', '192.168.1.179' ], ], ... ]
扩展配置范例
'mysql' => [ 'driver' => 'mysql', 'write' => [ 'host' => '192.168.1.180', 'username' => 'write', 'password' => 'write', ], 'read' => [ [ 'host' => '192.168.1.182', 'username' => 'read1', 'password' => 'read1', ], [ 'host' => '192.168.1.179', 'username' => 'read2', 'password' => 'read2', ], ], ... ]
或者
'mysql' => [ 'driver' => 'mysql', 'write' => [ 'host' => '192.168.1.180', 'username' => 'write', 'password' => 'write', ], 'read' => [ 'host' => [ '192.168.1.179', '192.168.1.182', ], 'username' => 'read', 'password' => 'read', ], ... ]
公司数据库架构为一主多从,从库访问地址为唯一地址,该处方便负载均衡及扩展从库。所以最终线上采用的配置
'mysql' => [ 'driver' => 'mysql', 'write' => [ 'host' => '192.168.1.180', 'username' => 'write', 'password' => 'write', ], 'read' => [ 'host' => '192.168.1.179' 'username' => 'read', 'password' => 'read', ], ... ]
代码分析
授人以鱼不如授人以渔,之所以配置如此灵活的原因,以及如何查找到这些配置方式。主要通过查找代码,分析代码;相关代码都在下面粘出,这里就不做解释了,代码能说明一切;
路径:vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php
代码:
class ConnectionFactory { ... /** * Get the read configuration for a read / write connection. * * @param array $config * @return array */ protected function getReadConfig(array $config) { $readConfig = $this->getReadWriteConfig($config, 'read'); if (isset($readConfig['host']) && is_array($readConfig['host'])) { $readConfig['host'] = count($readConfig['host']) > 1 "dot" notation. * * @param array $array * @param array|string $keys * @return void */ public static function forget(&$array, $keys) { $original = &$array; $keys = (array) $keys; if (count($keys) === 0) { return; } foreach ($keys as $key) { $parts = explode('.', $key); while (count($parts) > 1) { $part = array_shift($parts); if (isset($array[$part]) && is_array($array[$part])) { $array = &$array[$part]; } else { $parts = []; } } unset($array[array_shift($parts)]); // clean up after each pass $array = &$original; } } ... }
以上这篇Laravel数据库读写分离配置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
更新日志
2024年09月25日
2024年09月25日
- 刘宇.2024-宇宙诗人【哔哟哔哟文化】【FLAC分轨】
- 《全景声白噪音》沉浸式大自然助眠 带你听自然的声音[mp3]
- 纯音入心系列纯音乐《古筝精选 十指弹一赏心曲一心奏出世人心》1CD[MP3][582MB]
- 纯音入心系列纯音乐《古筝与现代音乐的交织》1CD[MP3][96MB]
- 王俪婷.2011-ROMANCE【华研国际】【WAV+CUE】
- 狮子合唱团.2016-LION(引进版)【华纳】【WAV+CUE】
- 范文芳.1996-FNNTASY【HYPE】【WAV+CUE】
- 纯音入心系列纯音乐《韵味古筝曲》1CD[MP3][146.2MB]
- 纯音入心系列纯音乐《古筝系列-传统乐曲》1CD[MP3][974.7MB]
- 纯音入心系列纯音乐《古筝系列-弦凝指咽声停处》1CD[MP3][656.5MB]
- 群星.1994-大烂片2辑【派森】【WAV+CUE】
- 吴倩莲.1997-望爱【EMI百代】【WAV+CUE】
- 杨千嬅.2002-万紫千红演唱会2CD(2024环球红馆40复刻系列)【环球】【WAV+CUE】
- 郭采洁.2015-Begin.Again爱造飞鸡【华纳】【FLAC分轨】
- 许志安.2011-ON.AND.ON【东亚】【WAV+CUE】