PmaControl logo PmaControl
  • Главная
  • PmaControl
    • ИИ-агенты 13 on-premise агентов
    • Тарифы Community, Cloud, On-Premise, Premium
    • Документация Руководства, API, архитектура
    • Клиенты 28+ компаний
    • FAQ 25 вопросов / 7 категорий
    Базы данных
    • MariaDB 30 статей
    • MySQL 10 статей
    • Galera Cluster 6 статей
    • MaxScale 3 статьи
    • ProxySQL 2 статьи
    • Amazon Aurora MySQL 0 статьи
    • Azure Database 0 статьи
    • ClickHouse 0 статьи
    • GCP CloudSQL 0 статьи
    • Percona Server 0 статьи
    • SingleStore 0 статьи
    • TiDB 0 статьи
    • Vitess 0 статьи
    Решения
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Observabilité SQL Мониторинг, алерты, топология
    • Haute disponibilité Репликация, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Аудит, GDPR, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Тарифы
  • Ресурсы
    • Документация Технические руководства и API
    • FAQ 25 частых вопросов
    • Отзывы Отзывы клиентов и кейсы
    • Блог Статьи и аналитика
    • Roadmap Планируемые функции
    Области экспертизы
    • Observabilité SQL Мониторинг, алерты, топология Dot3
    • Haute disponibilité Репликация, failover, Galera
    • Sécurité & conformité Аудит, GDPR, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Быстрые ссылки
    • Wiki GitHub 26 страниц — установка, движок, плагины
    • Исходный код Официальный репозиторий GitHub
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Записаться на демо 30 мин — реальная архитектура
  • Поддержка 24×7
  • Записаться на демо
Записаться на демо
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Вернуться в блог

MaxScale: гораздо больше, чем reverse SQL proxy (часть 1)

Опубликовано July 31, 2025 Автор Sylvain ARBAUDIE
maxscale mariadb proxy architecture
Поделиться X LinkedIn Facebook Email PDF
MaxScale: гораздо больше, чем reverse SQL proxy (часть 1)

Не простой прокси

Когда речь заходит о MaxScale, первый рефлекс — сравнить его с HAProxy или классическим балансировщиком нагрузки. Это фундаментальная ошибка. MaxScale — это не прокси уровня 4 (TCP). Это прокси уровня 7, который понимает протокол SQL. Он парсит запросы, анализирует их тип и принимает интеллектуальные решения о маршрутизации.

Разница сравнима с той, что существует между почтальоном, разносящим почту по адресам (L4), и помощником, который читает ваши письма, сортирует их по приоритету, фильтрует спам и показывает только то, что актуально (L7). MaxScale читает SQL.

Аутентификация: больше, чем просто пароль

MaxScale поддерживает полный набор механизмов аутентификации:

  • MariaDBAuth: нативная аутентификация MariaDB / MySQL с локальным кэшем учётных данных
  • PAM: интеграция с корпоративными каталогами (LDAP, Active Directory) через Pluggable Authentication Modules
  • GSSAPI/Kerberos: SSO-аутентификация для сред Windows / Active Directory
  • Ed25519: аутентификация по открытому ключу от MariaDB, более безопасная, чем классический хеш SHA

Аутентификация управляется на уровне listener. Поэтому можно использовать разные методы аутентификации на разных портах: PAM для внутренних приложений, Ed25519 для административных подключений, MariaDBAuth для устаревшей совместимости.

Протоколы: не только SQL

MaxScale полиглот. Он поддерживает несколько входных и выходных протоколов:

MariaDBClient / MariaDBBackend

Нативный протокол MariaDB / MySQL. Это основной случай использования: приложения подключаются к MaxScale как к стандартному серверу баз данных.

CDC / AVRO

Протокол Change Data Capture позволяет стримить изменения binlog в формате AVRO. Это идеальный инструмент для построения конвейеров данных в реальном времени, наполнения data lake или синхронизации внешних систем.

NoSQL / MongoDB

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

PostgreSQL (экспериментальный)

Поддержка входящего протокола PostgreSQL находится в разработке. Цель — позволить приложениям PostgreSQL подключаться к бэкендам MariaDB.

Мониторы: интеллект топологии

Мониторы — это глаза MaxScale. Они регулярно опрашивают бэкенд-серверы для автоматического обнаружения топологии и состояния здоровья кластера.

mariadbmon

Основной монитор для топологий репликации MariaDB / MySQL. Он обнаруживает мастер, слейвы, реле и состояние репликации. Он управляет автоматическим отказоустойчивым переключением: если мастер падает, слейв повышается, а остальные слейвы перенастраиваются для репликации с нового мастера.

galeramon

Монитор, предназначенный для кластеров Galera. Он обнаруживает состояние кластера (Primary, Non-Primary, Disconnected), количество узлов, state UUID и управляет маршрутизацией соответственно.

Маршрутизаторы: интеллект маршрутизации

Маршрутизаторы — это мозг MaxScale. Они решают, куда отправить каждый запрос в зависимости от его типа и обнаруженной топологии.

readwritesplit

Наиболее используемый маршрутизатор. Запросы на запись (INSERT, UPDATE, DELETE, CREATE и т.д.) отправляются на мастер. Запросы на чтение (SELECT) распределяются по слейвам. Транзакции целиком отправляются на мастер.

readconnroute

Более простой маршрутизатор, который распределяет соединения (не запросы) по доступным серверам. Полезен для интенсивного чтения, не требующего разделения чтения/записи на уровне запроса.

schemarouter

Маршрутизирует запросы к серверу, который хостит запрашиваемую схему. Идеален для шардинга по базам данных: client_europe на сервере A, client_asia на сервере B.

binlogrouter

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

kafkarouter (CDC)

Отправляет события binlog в Apache Kafka. Каждое изменение базы публикуется как Kafka-сообщение, позволяя потребителям реагировать в реальном времени.

Фильтры: более 15 модулей

Фильтры перехватывают и трансформируют SQL-поток между клиентом и сервером. MaxScale предлагает более 15:

  • qlafilter: полное журналирование запросов (аудит)
  • regexfilter: переписывание запросов по регулярным выражениям
  • cache: кэш запросов с автоматической инвалидацией
  • throttlefilter: ограничение скорости запросов по пользователю
  • masking: динамическое маскирование конфиденциальных данных (email-адреса, номера карт)
  • topfilter: сбор самых медленных запросов
  • commentfilter: внедрение SQL-комментариев для трейсинга
  • tee: дублирование потока на второй бэкенд (теневое тестирование)
  • namedserverfilter: маршрутизация к конкретному серверу на основе правил
  • hintfilter: интерпретация SQL-хинтов для принудительной маршрутизации
  • luafilter: выполнение Lua-скриптов для пользовательской логики
  • binlogfilter: фильтрация событий binlog по схеме или таблице

Развёртывание: готов к Docker и Kubernetes

MaxScale доступен как официальный Docker-образ:

docker run -d --name maxscale \
  -v /path/to/maxscale.cnf:/etc/maxscale.cnf \
  -p 4006:4006 -p 8989:8989 \
  mariadb/maxscale:latest

Для Kubernetes MaxScale развёртывается как StatefulSet или Deployment в зависимости от сценария. REST API упрощает интеграцию с health checks и readiness-пробами.

Бизнес-ценность

Помимо технических возможностей, MaxScale приносит конкретную бизнес-ценность:

  • Высокая доступность: автоматическое переключение за несколько секунд, прозрачное для приложения
  • Масштабируемость чтения: добавление слейвов без изменения кода приложения
  • Безопасность: SQL-фильтрация, маскирование данных, централизованная аутентификация
  • Наблюдаемость: журналирование, метрики, REST API для мониторинга
  • Упрощение миграции: поддержка нескольких протоколов для технологических переходов

MaxScale — это не простой reverse proxy. Это слой интеллектуальной инфраструктуры, который встраивается между приложениями и базами MariaDB / MySQL, обеспечивая устойчивость, безопасность и гибкость без изменения ни одной строки кода приложения.


Эта статья была первоначально опубликована на Medium.

Поделиться X LinkedIn Facebook Email PDF
← Вернуться в блог

Комментарии (0)

Комментариев пока нет.

Оставить комментарий

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Юридическая информация GitHub Контакты
Не ждите инцидента, чтобы понять свою архитектуру. © 2014-2026 PmaControl — 68Koncept