Что нового в API7 Enterprise 3.2.12: Поддержка Stream Routes
May 24, 2024
В версии API7 Enterprise 3.2.12 была добавлена поддержка потоковых маршрутов, что позволяет проксировать и балансировать трафик по протоколам TCP/UDP.
Благодаря настройке потоковых маршрутов, API7 Enterprise может проксировать запросы для таких сервисов, как MySQL и MongoDB, основанных на протоколе TCP. Также поддерживается проксирование приложений, таких как Redis, которые могут быть настроены для работы как по TCP, так и по UDP. Это позволяет эффективно управлять и оптимизировать сетевой трафик TCP/UDP.
Как использовать потоковые маршруты в API7 Enterprise?
Добавление потокового сервиса
При ручном добавлении сервиса появилась возможность выбора типа сервиса, поддерживающего два варианта: HTTP и Stream, что соответствует проксированию на уровне 7 (L7) и уровне 4 (L4) соответственно. Если выбран тип сервиса Stream, схема вышестоящего сервера может быть выбрана как TCP или UDP. Важно отметить, что после выбора типа сервиса его нельзя изменить, поэтому убедитесь, что выбран правильный тип.

Добавление потоковых маршрутов
После успешного создания сервиса типа Stream вы будете перенаправлены на страницу деталей сервиса. Следующим шагом является добавление маршрутов, нажав кнопку Add Stream Route.

Заполните форму, указав имя маршрута, описание и соответствующую конфигурацию маршрута. Здесь мы настраиваем маршрут для проксирования сервиса MySQL.

По сравнению с обычными конфигурациями HTTP-маршрутов, потоковые маршруты имеют три различных параметра конфигурации.
-
Адрес сервера: Это адрес, на котором сервер шлюза принимает соединения потоковых маршрутов, служащий входом для трафика потоковых маршрутов в шлюз. Когда клиенты пытаются установить соединение, они отправляют запросы на этот адрес, и шлюз перенаправляет или обрабатывает эти запросы на основе предопределенных правил маршрутизации.
-
Порт сервера: Используется для указания порта, на котором сервер шлюза прослушивает трафик.
-
Удаленный адрес: Это адрес клиента, инициирующего запрос. Только запросы, отправленные с адресов клиентов, совпадающих с удаленным адресом, могут быть перенаправлены, что позволяет управлять трафиком для конкретных клиентов.
После успешного создания маршрута мы можем увидеть только что добавленный маршрут MySQL в списке.

Настройка вышестоящих узлов и публикация сервиса
Далее мы опубликуем сервис в группе шлюзов и добавим вышестоящий узел, соответствующий сервису MySQL.

После публикации сервиса, когда сервер шлюза на 127.0.0.10 и порту 9101 получает запрос, этот маршрут будет отвечать за обработку запроса и его перенаправление на вышестоящий сервис MySQL.
Помимо базовой функции перенаправления запросов, после публикации сервиса можно улучшить его производительность и безопасность с помощью ряда настроек. Например, можно настроить стратегии балансировки нагрузки для потоковых маршрутов, чтобы обеспечить равномерное распределение трафика между несколькими вышестоящими серверами MySQL, тем самым повышая масштабируемость и отказоустойчивость системы.
Кроме того, можно настроить механизмы проверки здоровья, чтобы периодически проверять состояние вышестоящих серверов, гарантируя, что только здоровые серверы получают и перенаправляют запросы, и избегая прерываний сервиса из-за сбоев серверов.
Поддерживаемые плагины
В настоящее время для потоковых маршрутов поддерживаются четыре плагина:
-
ip-restriction: Предоставляет возможности контроля доступа по IP. -
limit-conn: Этот плагин может ограничивать количество одновременных запросов от клиентов к одному сервису. -
prometheus: Предоставляет возможности мониторинга и оповещения для потоковых маршрутов. -
syslog: Записывает и отправляет системные логи.
Эти четыре плагина совместно повышают безопасность, стабильность, мониторинг и удобство обслуживания потоковых маршрутов.
Заключение
Потоковые маршруты в API7 Enterprise 3.2.12 предоставляют пользователям более мощное и гибкое управление трафиком по протоколам TCP/UDP, способствуя повышению надежности и масштабируемости приложений. Это улучшает управление сетевым трафиком, повышает надежность и операционную эффективность системы, а также обеспечивает лучшую адаптируемость для бизнеса, что делает их ценными для поддержки работы критически важных корпоративных приложений.
