Maxscale、等级和优先级
Maxscale, ranks and priority
我正在使用带有 3 个 galera 服务器 (mariadb 10.4) 的 maxscale (6.2) readwritesplit 路由器。其中 2 个在 DC1 中,第 3 个在较远的 DC2 中。
使用 ranks 是我在这里看到的唯一选择,因为 priority
将被 galeramon 用于 select 主人。
我的目标是告诉maxscale尽量使用DC1,所以server1为主(priority=1,rank=primary),server2为slave(priority=2,rank=primary),使用DC2 server3 仅当 server1 或 server2 不可访问时(优先级=3,等级=次要)。
这是正确的行为吗?
[server1]
type=server
address=192.168.0.11
priority=1
rank=primary
[server2]
type=server
address=192.168.0.12
priority=2
rank=primary
[server3]
type=server
address=192.168.0.21
priority=3
rank=secondary
[split]
type=service
router=readwritesplit
servers=server1,server2,server3
[monitor]
type=monitor
module=galeramon
servers=server1,server2,server3
root_node_as_master=true
use_priority=true
是的,读写分离模块only uses connections that have the same rank
。这意味着如果 server1
和 server2
都失败,readwritesplit 服务将使用 server3
只要它是 up.
当其他两个服务器中的任何一个恢复时,galeramon 监视器会将 Master
标签从 server3
转移到其他节点之一。那时 readwritesplit 将丢弃与 server3
的连接,并在可能的情况下重新连接到具有更高级别的节点。
我正在使用带有 3 个 galera 服务器 (mariadb 10.4) 的 maxscale (6.2) readwritesplit 路由器。其中 2 个在 DC1 中,第 3 个在较远的 DC2 中。
使用 ranks 是我在这里看到的唯一选择,因为 priority
将被 galeramon 用于 select 主人。
我的目标是告诉maxscale尽量使用DC1,所以server1为主(priority=1,rank=primary),server2为slave(priority=2,rank=primary),使用DC2 server3 仅当 server1 或 server2 不可访问时(优先级=3,等级=次要)。
这是正确的行为吗?
[server1]
type=server
address=192.168.0.11
priority=1
rank=primary
[server2]
type=server
address=192.168.0.12
priority=2
rank=primary
[server3]
type=server
address=192.168.0.21
priority=3
rank=secondary
[split]
type=service
router=readwritesplit
servers=server1,server2,server3
[monitor]
type=monitor
module=galeramon
servers=server1,server2,server3
root_node_as_master=true
use_priority=true
是的,读写分离模块only uses connections that have the same rank
。这意味着如果 server1
和 server2
都失败,readwritesplit 服务将使用 server3
只要它是 up.
当其他两个服务器中的任何一个恢复时,galeramon 监视器会将 Master
标签从 server3
转移到其他节点之一。那时 readwritesplit 将丢弃与 server3
的连接,并在可能的情况下重新连接到具有更高级别的节点。