Maxscale: объединить readwritesplit и schemarouter
Я пытаюсь настроить maxscale для использования schemarouter и readwritesplit. У меня есть много осколков для моей базы данных MySQL. Каждый осколок имеет раба. Таким образом, идея состоит в том, чтобы использовать один планировщик на мастерах и один на рабах для прокси всех осколков. Затем используйте эти 2 службы в режиме readwritesplit.
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.
Любая помощь будет хорошей.
Мой schemarouter работает нормально. Вот конфиг 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
Спасибо
1 ответ
Ошибки, скорее всего, вызваны тем, что службы readwritesplit еще не запущены. Есть сообщение об ошибке такого поведения на MariaDB Jira.
Если служба сегментирования работает, и больше ошибок не регистрируется после запуска MaxScale, тогда все работает должным образом, и ошибки могут быть проигнорированы, как описано в этом отчете об ошибках.
Другим способом решения этой проблемы было бы разделение конфигурации на две части и использование отдельных экземпляров MaxScale; один для службы сегментирования и другой для службы разделения чтения-записи. Это добавляет дополнительный уровень сложности, так как необходимо запустить две службы вместо одной.