Mariadb 具有多群集设置的MaxScale

Mariadb 具有多群集设置的MaxScale,mariadb,replication,database-replication,master-slave,maxscale,Mariadb,Replication,Database Replication,Master Slave,Maxscale,我一直在为一些数据库服务器开发一些高可用性场景,并检查了MaxScale和HAProxy,这两个场景看起来都很有趣,但问题如下。 在设置MaxScale时,一切都进行得很顺利,直到我发现没有办法在同一个MaxScale实例上创建多个集群,但这是必须使用一个MaxScale实例控制的数据库服务器数量的必要条件 在设置MaxScale时有没有办法实现多个集群,或者这只是MaxScale中没有实现的东西 感谢您的帮助要使用多个群集和一个MaxScale,只需定义多个服务器、监视器、服务和侦听器。以下是

我一直在为一些数据库服务器开发一些高可用性场景,并检查了MaxScale和HAProxy,这两个场景看起来都很有趣,但问题如下。 在设置MaxScale时,一切都进行得很顺利,直到我发现没有办法在同一个MaxScale实例上创建多个集群,但这是必须使用一个MaxScale实例控制的数据库服务器数量的必要条件

在设置MaxScale时有没有办法实现多个集群,或者这只是MaxScale中没有实现的东西


感谢您的帮助

要使用多个群集和一个MaxScale,只需定义多个服务器、监视器、服务和侦听器。以下是将一个群集用作服务的示例:

[server1]
type=server
address=127.0.0.1
port=3000
protocol=MariaDBBackend

[server2]
type=server
address=127.0.0.1
port=3001
protocol=MariaDBBackend

[Cluster-1-Monitor]
type=monitor
module=mariadbmon
servers=server1,server2
user=maxuser
passwd=maxpwd
monitor_interval=5000

[Cluster-1-Router]
type=service
router=readwritesplit
servers=server1,server2
user=maxuser
passwd=maxpwd

[Cluster-1-Listener]
type=listener
service=Cluster-1-Router
protocol=MariaDBClient
port=4006
这将在端口4006上公开读写拆分服务,该服务将在服务器
server1
server2
上执行读写拆分

要定义另一个,只需添加:

  • 定义集群的服务器
  • 用于监视服务器的监视器
  • 使用服务器的服务
  • 连接到服务的侦听器

通过这种方式,您可以公开连接到不同群集的多个端口。例如,一个集群可以在端口4006上侦听,另一个集群可以在端口4007上侦听。然后,可以使用这两个实例将两个不同的应用程序连接到两个不同的群集。

是否尝试将多个数据库群集与一个MaxScale实例一起使用?如果是这样,只需定义更多的服务器、监视器、服务和侦听器来定义它们。@markusjm是的,这正是我的目标,这将是一个整体(5-10)群集连接到一个MaxScale实例,并且将由该MaxScale实例根据请求在我的测试环境中的设计位置划分流量我目前有一个主从设置,但我不知道如何在MaxScale中使用主从设置定义第二个群集是否有特定的设置必须定义还是不定义?好的,当我看这个时,它应该可以工作,除了1个问题。我使用的集群有一个多主机设置,并且读写脚本是不可能的,有没有办法定义一种接受多主机设置的路由器类型?这主要取决于您仍然希望写入到一个位置还是多个位置。如果要将写入分散到所有节点,请查看
readconnroute
路由器。即使您有多主机设置,也很可能仍然能够使用
readwritesplit
。您可以查看MaxScale附带的各种类型的监视器,并查看是否支持您的群集类型: