Как воспроизвести сообщения, обработанные с помощью служебной шины Azure? - PullRequest
0 голосов
/ 24 декабря 2018

Учитывая архитектуру корпоративных систем, которая опирается на возможности обмена сообщениями служебной шины Azure, в случае поврежденного состояния системы, можно ли будет воспроизвести команды для восстановления состояния системы?

Скажите, что былоКоманды, отправленные в систему, которые обрабатываются базовыми микросервисами, но из-за ошибки в сервисе, результирующее состояние системы не является корректным.Мы исправили ошибку и развернули новую версию сервиса.Теперь мы хотели бы очистить текущее состояние и воссоздать его, воспроизведя команды, полученные системой ранее.

Насколько я понимаю, воспроизведение сообщений - это концепция, упоминаемая в источнике событий.Когда я выполняю поиск в контексте брокеров сообщений для разработки корпоративной системы, такой как Azure Service Bus, эта возможность, похоже, не является распространенной.Утешение, кажется, поддерживает воспроизведение сообщений согласно этой статье .Тем не менее, мы предпочитаем использовать Azure Service Bus (SaaS), а не Solace (что означало бы необходимость приобретения ресурсов IaaS) в качестве посредника сообщений.

Единственное решение, которое я могу придумать, - реализовать службу как сортировку«концентратора событий», который прослушивает все сообщения, сериализует их, сохраняет их.Затем в случае необходимости повторной обработки сообщений он десериализует сообщения (возможно, некоторые из них) и отправляет их обратно в служебную шину Azure после AMQP с использованием клиентской библиотеки, такой как AMQP.Net lite .

Есть ли какие-либо инструменты, которые мы можем использовать вместо того, чтобы самим создавать такой сервис, который работает вместе с Azure Service Bus?

Заранее спасибо!

1 Ответ

0 голосов
/ 25 декабря 2018

Думаю, вам стоит взглянуть на сервис Azure Event Hubs , он вполне соответствует вашим потребностям.

Обновление

Целью использования Azure Event Hubs в этом сценарии является хранение сообщений, поступающих через Service Bus для возможного последующего "воспроизведения" (или повторной обработки), а не для замены Сервисная шина .Этого можно добиться, используя функцию Azure с:

А затем

Надеюсь, это поможет!

...