Продукт RabbitMQ прошёл долгий путь от первых дней как лёгкий брокер сообщений до того, чтобы стать одной из самых широко используемых в мире платформ для обмена сообщениями с открытым исходным кодом. Теперь под управлением Broadcom, решение VMware Tanzu RabbitMQ продолжает развиваться с возможностями корпоративного уровня и акцентом на производительность, наблюдаемость и опыт разработчиков. С предстоящим выпуском версии 4.2, анонсированной на конференции Explore 2025, VMware рада представить мощные новые функции — такие как запланированные и отложенные сообщения, поддержку Federation и Shovel, SQL-селекторы сообщений для Streams, перехватчики сообщений, расширенную наблюдаемость и новый браузер Streams — делая его ещё более подходящим для современных приложений, основанных на событиях и работающих с AI.
Сообщения как основа Tanzu Data Intelligence
Как ключевой компонент недавно представленного пакета Tanzu Data Intelligence, RabbitMQ обеспечивает гибкость данных, устраняя проблемы их фрагментации благодаря поддержке различных протоколов — от IoT до критически важной инфраструктуры обмена сообщениями для крупнейших финансовых институтов и государственных организаций. Сложность инфраструктуры может быть уменьшена с помощью Tanzu RabbitMQ за счёт проверенной модернизации устаревших шаблонов обмена сообщениями. RabbitMQ поддерживает как традиционный обмен сообщениями, так и постоянный стриминг с расширенной фильтрацией сообщений «на лету». Это позволяет отказаться от традиционного пакетного подхода к загрузке данных (который вызывает узкие места в рабочих процессах), а также помогает обеспечить доставку нужных данных из множества источников в нужное место в реальном времени благодаря расширенной маршрутизации сообщений, встроенной в Tanzu RabbitMQ, создавая настоящую событийно-ориентированную архитектуру.
Давайте рассмотрим новые функции подробнее.
Shovel
Это значительное обновление одного из самых популярных плагинов Tanzu RabbitMQ включает важные улучшения: осведомлённость о кластере, прозрачность протоколов сообщений и общее повышение производительности. Shovel широко используется тысячами пользователей для надёжной передачи сообщений между брокерами RabbitMQ — как внутри одного кластера, так и между разными кластерами. Ключевым нововведением является снятие ограничений, накладываемых AMQP 0.9.1, что делает Shovel более гибким, чем когда-либо. Теперь он может бесшовно взаимодействовать в различных системах, независимо от используемого протокола сообщений, что значительно расширяет его применимость в гетерогенных средах.
SQL-выражения фильтрации для Streams
Основываясь на ключевых возможностях релиза Tanzu RabbitMQ 4.1, который представил фильтрацию AMQP 1.0, эта новая функция представляет собой значительный шаг вперёд в возможностях фильтрации сообщений для стримов. Хотя фильтры AMQP 1.0 позволяли получателям сопоставлять несколько значений из разделов properties и application-properties, включая поиск по префиксу и суффиксу, они были несколько ограничены по сравнению с SQL-подобной фильтрацией. Новая функция обеспечивает гораздо большую гибкость и более мощные возможности фильтрации, предлагая SQL-подобный синтаксис для выборки сообщений внутри стримов. Это логичное развитие AMQP 1.0 и Streams, напрямую основанное на фильтрах AMQP, представленных в Tanzu RabbitMQ 4.1. Это улучшение позволяет реализовать гораздо более мощные и сложные сценарии потоковой обработки в RabbitMQ. В сочетании с ранее представленным подходом на основе фильтрации bloom общее качество фильтрации в RabbitMQ Streams становится колоссальным.
Перехватчики сообщений
Эта простая, но мощная функция позволяет разрабатывать плагины, которые могут перехватывать как входящие, так и исходящие сообщения через протоколы AMQP 0.9.1, AMQP 1.0 и MQTT. Такие плагины предоставляют широкий спектр возможностей: от проверки метаданных сообщений и добавления аннотаций для расширенного контекста до выполнения побочных эффектов, таких как логирование или аудит.
В настоящее время доступны три основных перехватчика:
Timestamp (входящий и исходящий) — позволяет точно фиксировать или изменять временные метки сообщений при входе и выходе из системы, что критически важно для аудита и анализа производительности.
Routing node — обеспечивает видимость или контроль за маршрутизирующим узлом, через который проходит сообщение, что полезно для отладки и понимания потоков сообщений.
MQTT client ID — позволяет перехватывать и изменять сообщения на основе MQTT client ID, предоставляя более тонкий контроль в приложениях на базе MQTT.
Улучшенная наблюдаемость
Поддержание здоровья и производительности высоконадёжных Quorum Queues стало проще, чем когда-либо. Теперь можно отслеживать количество сегментных файлов для Quorum Queues напрямую через Prometheus-эндпоинт RabbitMQ в связке с Grafana-дашбордами. Эта важная возможность позволяет пользователям проактивно следить за тем, чтобы эти надёжные очереди не были перегружены, помогая выявлять потенциальные проблемы паблишеров/потребителей до того, как они перерастут в сбои сервиса.
Внутренние доработки
Log compaction — хотя напрямую невидимо для конечных пользователей, это фундаментальное изменение крайне важно для высоконадёжного типа очередей Quorum Queues. Оно радикально изменяет текущую FIFO-природу (first-in, first-out) Quorum Queues, вводя новую модель, которая повышает гибкость использования этого критического типа очередей. В результате также достигаются заметные преимущества в производительности, что делает систему очередей более эффективной и надёжной.
Khepri — по умолчанию — новое хранилище метаданных Khepri теперь назначено по умолчанию для всех новых кластеров RabbitMQ. Это стратегическое решение позволяет новым развёртываниям сразу же воспользоваться расширенными возможностями и стабильностью, которые предлагает Khepri, упрощая управление кластерами и улучшая общую надёжность системы.
Federation — ранее объединённые в один плагин, функции федерации очередей и обменников теперь стратегически разделены. Это создаёт два независимых и более специализированных плагина, обеспечивающих большую гибкость и более простое управление для пользователей, разворачивающих федеративные окружения RabbitMQ.
VMware Tanzu RabbitMQ 4.2 представляет собой значительный шаг вперёд в поддержке современных микросервисных архитектур и ускорении циклов разработки. Благодаря надёжным и гибким возможностям обмена сообщениями Tanzu RabbitMQ предоставляет необходимую основу для распределённых систем, обеспечивая бесшовное взаимодействие между независимыми сервисами. Более того, его обширная коллекция клиентских библиотек для различных языков программирования значительно упрощает интеграцию, позволяя разработчикам быстро создавать и развертывать приложения с непревзойдённой эффективностью.