0

我正在尝试设置 maxscale 以使用 schemarouter 和 readwritesplit。我的 mysql 数据库有很多分片。每个分片都有一个从属所以我们的想法是在 master 上使用一个 schemarouter,在 slave 上使用一个 schemarouter 来代理所有分片。然后在 readwritesplit 中使用这 2 个服务。

This cause the following issue:
2017-02-10 14:57:48   error  : Failure loading users data from backend [10.161.66.145:4009] for service [Splitter Service]. MySQL error 2013, Lost connection to MySQL server at 'handshake: waiting for inital communication packet', system error: 110
2017-02-10 14:57:52   error  : Failure loading users data from backend [10.161.66.145:4008] for service [Splitter Service]. MySQL error 2013, Lost connection to MySQL server at 'reading authorization packet', system error: 110
2017-02-10 14:57:52   error  : Unable to get user data from backend database for service [Splitter Service]. Failed to connect to any of the backend databases.

你能帮忙的话,我会很高兴。

我的架构路由器都工作正常。这是 readwritesplit 配置:

[max_ro]
type=server
address=10.10.10.10
port=4009
protocol=MySQLBackend

[max_rw]
type=server
address=10.10.10.10
port=4008
protocol=MySQLBackend

[Splitter Service]
type=service
router=readwritesplit
servers=max_ro,max_rw
user=maxscale
passwd=maxscale

[Splitter Listener]
type=listener
service=Splitter Service
protocol=MySQLClient
port=4010

谢谢

4

1 回答 1

0

这些错误很可能是由于 readwritesplit 服务尚未启动。MariaDB Jira上有一个关于此行为的错误报告。

如果分片服务正常工作并且在 MaxScale 启动后没有记录更多错误,那么一切都按预期工作,并且可以忽略错误,如本错误报告中所述。

解决此问题的另一种方法是将配置分成两部分并使用单独的 MaxScale 实例;一个用于分片服务,另一个用于读写拆分服务。这确实增加了额外的复杂性,因为需要启动两个服务而不是一个。

于 2017-03-17T14:13:25.663 回答