Spec-Zone .ru
спецификации, руководства, описания, API
|
connect_server()
read_handshake()
read_auth()
read_auth_result()
read_query()
read_query_result()
Можно управлять, как MySQL Proxy управляет и работает с запросами и результатами, которые передаются серверу
MySQL с помощью встроенного языка сценариев Lua. Можно узнать больше о языке программирования Lua от
Следующая схема показывает краткий обзор классов, представленных MySQL Proxy.
Основное взаимодействие между MySQL Proxy и сервером обеспечивается, определяя одну или более функций через сценарий Lua. Много функций поддерживаются согласно различным событиям и операциям в коммуникационной последовательности между клиентом и одним или более серверами MySQL бэкэнда:
connect_server()
: Эта функция вызывается каждый раз,
когда соединение делается к MySQL Proxy от клиента. Можно использовать эту функцию во время выравнивания
нагрузки, чтобы прервать исходное соединение и решить, к какому серверу клиент должен в конечном счете
быть привязан. Если Вы не определяете специального решения, простое круговое распределение стиля
используется по умолчанию.
read_handshake()
: Эта функция вызывается, когда
начальная информация о квитировании возвращается сервером. Можно получить возвращенную информацию о
квитировании и обеспечить дополнительные проверки прежде, чем обмен авторизации будет иметь место.
read_auth()
: Эта функция вызывается, когда пакет
авторизации (имя пользователя, пароль, база данных значения по умолчанию) представляется клиентом
серверу для аутентификации.
read_auth_result()
: Эта функция вызывается, когда
сервер возвращает пакет авторизации клиенту, указывающему ли авторизация, за которой следуют.
read_query()
: Эта функция вызывается каждый раз, когда
запрос отправляется клиентом серверу. Можно использовать это, чтобы отредактировать и управлять исходным
запросом, включая добавление новых запросов прежде и после исходного оператора. Можно также использовать
эту функцию, чтобы возвратить информацию непосредственно клиенту, обходя сервер, который может быть
полезным, чтобы фильтровать нежелательные запросы или запросы, которые превышают известные пределы.
read_query_result()
: Эта функция вызывается каждый
раз, когда результат возвращается из сервера, если Вы вручную ввели запросы в очередь запроса. Если Вы
явно не ввели запросы в пределах read_query()
функция, эта функция не
инициирована. Можно использовать это, чтобы отредактировать набор результатов, или удалить или
фильтровать наборы результатов, сгенерированные от дополнительных запросов, при использовании которых Вы
вводили в очередь read_query()
.
Следующая таблица приводит прокси MySQL и коммуникационные функции сервера, предоставленную информацию, и направление информационного потока, когда функция инициирована.
Функция | Предоставленная информация | Направление |
---|---|---|
connect_server() |
Ни один | Клиент к Серверу |
read_handshake() |
Ни один | Сервер Клиенту |
read_auth() |
Ни один | Клиент к Серверу |
read_auth_result() |
Ни один | Сервер Клиенту |
read_query() |
Запрос | Клиент к Серверу |
read_query_result() |
Результат запроса | Сервер Клиенту |
По умолчанию все функции возвращают результат, который указывает, должны ли данные быть переданы клиенту или
серверу (в зависимости от направления передаваемой информации). Это возвращаемое значение может быть
переопределено, явно возвращая постоянное указание, что определенный ответ должен быть отправлен. Например,
возможно создать информацию о наборе результатов вручную в пределах read_query()
и
возвратить набор результатов непосредственно клиенту, никогда не отправляя исходный запрос серверу.
В дополнение к этим функциям много встроенных структур обеспечивают управление тем, как MySQL Proxy вперед запрашивает и возвращает результаты, обеспечивая упрощенный интерфейс для элементов, таких как список запросов и группы наборов результатов, которые возвращаются.