Компания MariaDB представила прокси-сервер MaxScale 2.0
Компания MariaDB представила релиз прокси-сервера MariaDB MaxScale, работающего между клиентским приложением и СУБД, и способного решать такие задачи, как обеспечение высокой доступности, балансировка нагрузки, шардинг, разделение запросов на запись и чтение, прозрачное масштабирование, сглаживание процесса миграции инфраструктуры на другие СУБД, выявление атак по подстановке SQL-запросов, работа в роли межсетевого экрана для СУБД, прозрачный мониторинг производительности, организация горячего резервного копирования и т.п. Поддерживается работа с СУБД MariaDB, MySQL и через плагины с PostgreSQL, Microsoft SQL Server и Hadoop. Код проекта написан на языке Си.
Кроме функциональных изменений выпуск MaxScale 2.0 примечателен переходом на новую схему лицензирования. Вместо лицензии GPLv2 код теперь поставляется под лицензией BSL. Лицензия BSL позиционируется как альтернатива модели Open Core — при использовании BSL код расширенной функциональности изначально открыт и доступен для внесения изменений, но может применяться бесплатно только при соблюдении дополнительных условий, для обхода которых требуется приобретение коммерческой лицензии. В частности, MaxScale может бесплатно использоваться только для конфигураций, включающих менее трёх серверов. Ограничения действуют только до 1 января 2019 года, после чего они снимаются и код начинает поставляться под лицензией GPLv2+.
Для приложения взаимодействие с MariaDB MaxScale ничем не отличается от привычного обращения к СУБД, при этом, MaxScale может в прозрачном для приложения виде обеспечивать распределение запросов на серию серверов или организовать оперативное переключение на запасной сервер в случае сбоя первичного. MariaDB MaxScale позволяет на основе определения правил задавать достаточно сложные пути перенаправления запросов к СУБД. Правила могут привязываться к отдельным типам SQL-запросов, а также учитывать назначение конкретных серверов. Для обеспечения высокой производительности используются методы асинхронной обработки ввода/вывода и мультиплексирование через epoll.
Основные новшества:
- Режим захвата изменений данных (CDC — change data capture), позволяющий выявлять и перенаправлять на заданные узлы запросы, приводящие к изменению данных. Например, можно транслировать изменения в отдельные хранилища больших данных, такие как Hadoop, используя системы доставки сообщений, подобные Kafka. В состав включён модуль binlog-to-Avro, который позволяет подключиться к master-серверу MariaDB 10.0, преобразовать бинарный лог событий в формат Avro и транслировать изменения на другой сервер в форматах JSON или raw Avro с использованием протокола CDC;
- Возможность работы в роли межсетевого экрана с end-to-end SSL-шифрованием канала связи для защиты от неавторизированного доступа к данным;
- MaxAdmin, клиентское ПО для управления и мониторинга за работой MaxScale, переведено на новую схему аутентификации — для соединения с MaxScale теперь применяется только domain socket, удалённый доступ больше не поддерживается;
- Добавлена опция max_connections для ограничения максимального числа соединений;
- Классификатор запросов, применяемый в MaxScal для принятия решений, что делать с определённым запросом, переведён со встраиваемого варианта MariaDB на SQLite;
- Добавлен модуль readwritesplit для создания отказоустойчивых конфигураций, в которых в случае сбоя в работе master-узла, запросы на чтение будут автоматически перенаправлены на запасные slave-узлы, т.е. несмотря на недоступность основного сервера сохранится возможность выполнения запросов, не приводящих к изменению данных. Состояние master- и slave- серверов отслеживаются при помощи модуля mysqlmon.
© OpenNet