【问题标题】:Automatically connect to MySQL master if slave not working in Symfony2如果从服务器在 Symfony2 中不工作,则自动连接到 MySQL 主服务器
【发布时间】:2016-07-09 02:36:55
【问题描述】:

我已经建立了一个工作正常的主从连接。它似乎从奴隶读取并写入主人。对于 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

【问题讨论】:

    标签: mysql symfony doctrine-orm master-slave


    【解决方案1】:

    我认为最舒服的选择是(在这种情况下)在 MySQL 从服务器之前设置一个 HAProxy 实例。然后在 Symfony 配置中指定 HAProxy 作为从服务器。如果代理检测到它(从)已关闭,它将透明地传递整个连接到主服务器。

    查看一些如何使用我描述的行为设置 HAProxy 的示例:

    https://www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-up-mysql-load-balancing--3

    【讨论】:

    • All your MySQL servers have to be configured to perform Master-Master replication as load balancing involves both reading and writing to all the backends. 不过,我有一个 M-S 机箱。目的确实是从奴隶读取并只写入主人,所以这不是我要找的。​​span>
    • 我没有说它是一本精确的手册。负载均衡器配置完全取决于您。 DO 描述了 M-M;我告诉过你引入一个单独的负载均衡器,它将根据环境状态路由流量。
    • 我明白了。我想这可能会奏效,尽管我的问题与 Symfony 更相关。
    • 恐怕纯 Symfony 解决方案可能不可用 - 这确实很简单:它需要以某种方式检查主机可用性。如果无法访问较低的 ISO/OSI 层,检查可用性可能会导致不必要的开销。
    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2015-06-27
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多