Spec-Zone .ru
спецификации, руководства, описания, API

15.7.5. Используя MySQL Proxy

15.7.5.1. Используя Интерфейс Администрирования

Есть много различных способов использовать MySQL Proxy. На наиболее базовом уровне можно позволить MySQL Proxy передавать запросы от клиентов к единственному серверу. Чтобы использовать MySQL Proxy в этом режиме, только необходимо определить на командной строке сервер бэкэнда, с которым должен соединиться прокси:

shell> mysql-proxy
        --proxy-backend-addresses=sakila:3306

Если Вы определяете многократные серверы MySQL бэкэнда, прокси соединяет каждый клиент с каждым сервером круговым способом. Предположите, что у Вас есть два сервера MySQL, A и B. Первый клиент, который соединит, соединяется с сервером A, второе к серверу B, третьему к серверу A. Например:

shell> mysql-proxy \     --proxy-backend-addresses=narcissus:3306 \     --proxy-backend-addresses=nostromo:3306

Когда Вы определяете многократные серверы таким образом, прокси автоматически идентифицирует, когда сервер MySQL стал недоступным и отмечает его соответственно. Новые соединения автоматически присоединены к серверу, который доступен, и о предупреждении сообщают стандартному выводу от mysql-прокси:

network-mysqld.c.367: connect(nostromo:3306) failed: Connection refusednetwork-mysqld-proxy.c.2405: connecting to backend (nostromo:3306) failed, marking it as down for ...

Сценарии Lua включают более прекрасному уровню управления, и по соединениям и по их распределению и как обрабатываются запросы и наборы результатов. При использовании сценария Lua следует определить имя сценария на командной строке, используя --proxy-lua-script опция:

shell> mysql-proxy --proxy-lua-script=mc.lua
        --proxy-backend-addresses=sakila:3306

Когда Вы определяете сценарий, сценарий не выполняется, пока соединение не делается. Это означает, что отказы со сценарием не повышаются, пока сценарий не выполняется. Отказы сценария не будут влиять на распределение запросов к серверам MySQL бэкэнда.

Отметить

Поскольку сценарий не читается, пока соединение не делается, можно изменить содержание файла сценария Lua, в то время как прокси все еще работает, и измененный сценарий автоматически используется для следующего соединения. Это гарантирует, что MySQL Proxy остается доступным, потому что он не должен быть перезапущен для изменений, чтобы вступить в силу.