MySQL proxy
MySQL proxy - прокси-сервер, предназначенный для работы с базами данных MySQL.
Общее
MySQL proxy работает между сервером MySQL и клиентом, перенаправляя запросы от клиента к серверу. Помимо непосредственно проксирования имеет широкий спектр возможностей за счет наличия встроенного языка Lua:
- реализация механизма failover
- балансировка нагрузки
- перехват, фильтрация, модификация запросов
- обработка результатов выполнения запроса
Основные опции
--proxy-backend-addresses — список бэкенд серверов для балансировки запросов.
--proxy-read-only-backend-addresses — список readonly-бэкендов.
--proxy-lua-script — скрипт Lua.
Интерфейсная часть на Lua
connect_server
- вызывается при инициализации соединений с серверами, указанными в параметрах --proxy-backend-addresses и --proxy-read-only-backend-addressesread_auth_result
- обработчик авторизации клиента (обычно успешно авторизированное соединение записывается в пул соединений прокси-сервера)read_query
- эта функция вызывается при получении запроса от клиента и перед отправкой его на серверную частьread_query_result
- вызывается при получении результата выполнения запроса от сервераdisconnect_client
- вызывается при закрытии соединения с сервером