MySQL proxy — прокси-сервер, предназначенный для работы с базами данных MySQL.
Общее
MySQL proxy работает между сервером MySQL и клиентом, перенаправляя запросы от клиента к серверу. Имеет широкий набор возможностей (помимо непосредственно проксирования) за счет наличия встроенного языка Lua: реализация механизма failover; балансировка нагрузки; перехват, фильтрация, модификация запросов; обработка результатов выполнения запроса.
Опции --proxy-address - IP и порт самого mysql proxy (подключаться из приложений к нему).
--proxy-backend-addresses — список бэкенд-серверов для балансировки запросов (master в кластерной архитектуре).
--proxy-read-only-backend-addresses — список readonly бэкендов-серверов (slave, только read запросы).
--proxy-lua-script — скрипт Lua (rw-splitting.lua который разделяет read/write, уже есть в исходниках - нужно скачать архив с гитхаба и найти).
--daemon — запустить daemon-процесс (с версии 0.7 запускается по умолчанию).
Пример mysql-proxy \ --proxy-address=:3305 --proxy-backend-addresses=remotehost1:3306 \ --proxy-read-only-backend-addresses=remotehost2:3306 \ --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua \ --daemon
Интерфейсная часть на Lua connect_server — вызывается при инициализации соединений с серверами, указанными в параметрах --proxy-backend-addresses и --proxy-read-only-backend-addresses read_auth_result — обработчик авторизации клиента (обычно успешно авторизованное соединение записывается в пул соединений прокси-сервера) read_query — эта функция вызывается при получении запроса от клиента и перед отправкой его на серверную часть read_query_result — вызывается при получении результата выполнения запроса от сервера disconnect_client — вызывается при закрытии соединения с сервером
Ссылки Документация Список объектов Lua в контексте MySQL Proxy Mysql-proxy failover Несколько слов о MySQL proxy Mysql-Proxy: Установка и настройка на CentOS7
Категория:Прокси-серверы Категория:Программное обеспечение, программируемое с помощью Lua