Laravel 数据库连接配置和读写分离,数据库连接配置文件位于config/database.php
'mysql' => [ 'driver' => 'mysql', 'read' => [ 'database' => env('DB_DATABASE_READ', 'forge'), ], 'write' => [ 'database' => env('DB_DATABASE_WRITE', 'forge'), ], 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, ],
read项配置的是读连接,write项配置的是写连接。
读写分离配置中的sticky配置项
配置读写分离的时候,会配置读数据库从写数据库同步数据,由于不同的主机之间数据同步是需要时间的,并发量大的应用可能出现写入写数据库的数据不能立即从读数据库中读取到的情况,sticky配置项设置为true的话,在同一请求声明周期中,写入的数据会立刻读取到,底层原理是读操作也从写数据库读取。