我已经建立了一个主从连接,工作得很好。它似乎从奴隶读取并写入主人。对于MySQL部分,我使用了this guide。对主站进行的任何修改也会立即应用于从站。两个数据库都使用5.6版本。
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
slaves:
slave1:
host: "%sdatabase_host%"
port: "%sdatabase_port%"
dbname: "%sdatabase_name%"
user: "%sdatabase_user%"
password: "%sdatabase_password%"
但是,如果奴隶的mysql服务器关闭(或配置不当),那么连接到主服务器是不是有意义?在这种情况下,整个应用程序崩溃,我发现有点烦人。
我想知道如果奴隶不工作,是否有办法连接到主人。或者请告诉我这是不好的做法。
我认为它与MasterSlaveConnection有关,因为当配置一个dbal连接时,似乎会使用那个,否则会使用Connection。
答案 0 :(得分:1)
我认为最舒适的选择是(在此上下文中)在MySQL-slave服务器之前设置HAProxy实例。然后在Symfony配置中将HAProxy指定为从属服务器。如果代理检测到它(从属)关闭,它将透明地传递整个连接到主服务器。
请参阅一些示例,了解如何使用我描述的行为设置HAProxy: