У меня есть приложение с весенней загрузкой, которое выполняет некоторую обработку. Это приложение отправляет запросы, общается с различными приложениями. Запросы включают
- HL7-сообщения на tcp / ip-сокет внешней системы.
- http запросов к другим API (не для каждого вызова API, а для выбранного)
- Данные JSON в файловую систему
Мне нужен механизм для хранения всего, что вышло, и отслеживания их, чтобы при необходимости повторной отправки чего-либо я мог бы отправить их вручную. А также, чтобы удостовериться, что что-то отосланное в конечном счете отправляется в конечную точку.
Я посмотрел на Брокеры сообщений / Очереди сообщений - RabbitMQ, Kafka, ActiveMQ. Я не работал ни с одним из них. Эти структуры очередей, насколько я понимаю, предоставляют механизмы паб / саб, режимы прямого обмена.
Мои вопросы
- Могу ли я отправить сообщение брокеру, а затем отправить его брокеру на внешнюю конечную точку?
- Подключен ли потребитель к MQ или подписан на него для получения сообщений? Брокер не может просто отправить сообщение получателю.
- Если получатель является успокоительным API, может ли он просто получить запрос без написания какого-либо специального кода потребителя MQ? Я не могу попросить внешнюю систему написать какой-нибудь потребительский код.
Первоначально я предполагал, что могу использовать брокеры сообщений для этой цели Но позже после анализа пришли к выводу, что брокеры сообщений не подходят для моего случая. Правильно ли мое предположение?
Альтернативный раствор,
Добавьте запись в базу данных вместе с полезной нагрузкой для каждого запроса / сообщения, которое выходит из системы. Создайте пользовательский интерфейс, который можно использовать для отслеживания этих запросов, и предоставьте возможность повторной отправки в пользовательском интерфейсе, который можно использовать для повторной отправки этих сообщений на конечные точки. Просмотр около 200000 запросов / сообщений, отправляемых в день.