Mysql 如果读服务器没有响应,那么所有请求都将转到laravel中的主写服务器
我在laravel中设置了读/写数据库连接,用于数据库优化。我想知道,如果我们的读取服务器没有响应,那么所有请求都应该转到主数据库写入服务器。在拉雷维尔有可能吗? 这是我的database.php配置文件Mysql 如果读服务器没有响应,那么所有请求都将转到laravel中的主写服务器,mysql,laravel,Mysql,Laravel,我在laravel中设置了读/写数据库连接,用于数据库优化。我想知道,如果我们的读取服务器没有响应,那么所有请求都应该转到主数据库写入服务器。在拉雷维尔有可能吗? 这是我的database.php配置文件 'mysql' => [ 'read' => [ 'host' => '192.168.1.1', ], 'write' => [ '
'mysql' => [
'read' => [
'host' => '192.168.1.1',
],
'write' => [
'host' => '192.168.1.2'
],
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'root'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
如果不扩展Laravel core,我们就无法实现。基本上,我认为这类问题应该通过基础设施配置来解决,而不是通过应用程序来解决 例如,如果您使用的是AWS Aurora,则可以使用readerreadonly端点 日本人 如果群集的写入程序终结点是cluster1.cluster-xxxxx.us-east-1.rds.amazonaws.com,则reader one将提供后缀*-ro:cluster1.cluster-ro-xxxxx.us-east-1.rds.amazonaws.com 读卡器端点的行为完全符合您的要求。通常,通过循环调度来平衡负载。当读卡器崩溃时,它将自动从网络中排除。当写入程序崩溃时,其中一个读卡器将自动升级为写入程序。这是一个非常酷的功能