MariaDB Galera Cluster php 驱动程序
MariaDB Galera Cluster php driver
我想像这样设置一个主从 MariaDB Galera 集群:
我有 3 台机器LAMP,在它们前面有一个负载均衡器。
每台机器都有相同的前端来处理来自用户的 php 个请求。
每个 php 请求都将写入或读取数据库。
我希望写入在单个节点上完成以避免死锁,因此没有多主配置,并且读取可以在任何节点上完成。
我的问题是我如何知道哪个节点是主节点,也许我 bootstrap 集群关闭的那个节点现在是主节点,所以我可以连接到它进行写入。
我知道 MongoDB 驱动程序在这种情况下发挥了所有作用,您只需在连接时给他所有节点地址即可。这是否也适用于 MariaDB,因为我找不到任何相关信息,甚至在 PHP PDO 中也找不到。
我知道 HAProxy 能够管理它,知道谁是向其发送写入的主节点,但我不想通过将 SQL 请求发送到 HAProxy 来创建循环,HAProxy 将在其中一个节点中循环。
这代表了一个问题,即使我有一个前端与后端分离的 3 层配置,我如何在没有 HAProxy 帮助的情况下从一个前端连接到集群主机。
有什么办法可以解决这个问题,一个 PHP 库之类的,或者我需要一个像 HAProxy 这样的集群管理器吗?
注意:我最初使用 this 指南设置我的集群。
我建议使用 MaxScale,这是为 mariaDB 制作的代理,专门用于此目的。
https://mariadb.com/products/technology/maxscale
我不明白你为什么要尽量避免使用代理?
我想像这样设置一个主从 MariaDB Galera 集群:
我有 3 台机器LAMP,在它们前面有一个负载均衡器。
每台机器都有相同的前端来处理来自用户的 php 个请求。
每个 php 请求都将写入或读取数据库。
我希望写入在单个节点上完成以避免死锁,因此没有多主配置,并且读取可以在任何节点上完成。
我的问题是我如何知道哪个节点是主节点,也许我 bootstrap 集群关闭的那个节点现在是主节点,所以我可以连接到它进行写入。
我知道 MongoDB 驱动程序在这种情况下发挥了所有作用,您只需在连接时给他所有节点地址即可。这是否也适用于 MariaDB,因为我找不到任何相关信息,甚至在 PHP PDO 中也找不到。
我知道 HAProxy 能够管理它,知道谁是向其发送写入的主节点,但我不想通过将 SQL 请求发送到 HAProxy 来创建循环,HAProxy 将在其中一个节点中循环。
这代表了一个问题,即使我有一个前端与后端分离的 3 层配置,我如何在没有 HAProxy 帮助的情况下从一个前端连接到集群主机。
有什么办法可以解决这个问题,一个 PHP 库之类的,或者我需要一个像 HAProxy 这样的集群管理器吗?
注意:我最初使用 this 指南设置我的集群。
我建议使用 MaxScale,这是为 mariaDB 制作的代理,专门用于此目的。
https://mariadb.com/products/technology/maxscale
我不明白你为什么要尽量避免使用代理?