本篇文章给大家带来的内容是关于laravel学习:主从读写分离配置的实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在db的连接工厂中找到以下代码
…/vendor/laravel/framework/src/illuminate/databa/connectors/connectionfactory.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
* 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
(ist(
$config
[
$type
][0])) {
return
$config
[
$t用命ype
][
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的配置应该如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'mysql'
=> [
'write'
=> [
'host'
=>
'192.168.1.180'
,
],
'read'
=> [
[
'host'
=>
'192.168.1.182'
],
[
'host'
=>
'192.168.1.179'
],
],
'driver'
=>
'mysql'
,
'databa'
=>
'databa'
,
'urname'
=>
'root'
,
'password'
=>
''
,
'chart'
=>
'utf8'
,
'collation'
=>
'utf8_unicode_ci'
,
'prefix'
=>
''
,
]
加强版,支持多主多从,支持独立用户名和密码,配置如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'mysql'
=> [
'write'
=> [
[
'host'
=>
'192.168.1.180'
,
'urname'
=>
''
,
'password'
=>
''
,
],
],
'read'
=> [
[
'host'
=>
'192.168.1.182'
,
'urname'
=>
''
,
'password'
=>
''
,
],
[
'host'
=>
'192.168.1.179'
,
'urname'
=>
''
,
'password'
=>
''
,
],
],
'driver'
=>
'mysql'
,
'databa'
伸出自己的手=>
'databa'
,
'chart'
=>
'utf8'
,
'collation'
=>
'utf8_unicode_ci'
,
'prefix'
=>
''
,
]
验证
开启mysql的general-log,通过tail -f的方式监控log变化来确定配置是否生效
本文发布于:2023-04-07 20:04:03,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/d9de1d4ec65e1eded1f8c99937987528.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:laravel学习:主从读写分离配置的实现.doc
本文 PDF 下载地址:laravel学习:主从读写分离配置的实现.pdf
留言与评论(共有 0 条评论) |