EAI / промежуточное программное обеспечение:Огромные сообщения встроены или по ссылке

StackOverflow https://stackoverflow.com/questions/1290324

Вопрос

Существуют ли эффективные методы обработки сообщений или запросов / ответов, имеющих дело с огромными объемами данных (Мбайт?Гбайт?) через промежуточное программное обеспечение или систему EAI, предполагая, что промежуточное программное обеспечение транспортирует, но не обрабатывает огромные двоичные объекты данных?

  • Передавайте данные вместе с сообщением, чтобы сохранить согласованность, но, вероятно, несколько раз копируйте огромные объемы данных между системами

  • Храните данные в хранилище или репозитории данных (файловая система, база данных, ...) и передавайте ссылку на данные, однако теряя тесную связь между сообщением и данными

Каково общее решение этой проблемы?Как это поддерживается продуктами EAI или промежуточного программного обеспечения?

Это было полезно?

Решение

По моему опыту, полезно ограничить размер сообщений.В известных мне средах (Websphere MQ, SonicMQ) я нашел 5-10 МБ подходящим значением для большинства сообщений.Во многих случаях не помешает иметь очень мало сообщений размером до 100 МБ -> но там вам придется подумать о потреблении памяти, ....В большинстве API обмена сообщениями, особенно JMS, вы, по крайней мере, будете иметь сообщение полностью в памяти один раз, что может вызвать у вас некоторую головную боль при запуске параллельной обработки.

Есть две вещи, которые мы используем в качестве обходного пути:

  • используйте Шаблон последовательности сообщений с некоторыми дополнениями:в основном мы отправляем триггер, содержащий ссылку на все порядковые номера, чтобы обеспечить полноту
  • отправьте "ссылку" на данные

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

Для первого решения мы также, как правило, не используем provides specific solutions, но реализуем эту логику в нашей пользовательской реализации - поэтому мы не привязаны к конкретной системе обмена сообщениями.

Другие советы

Если практично установить прямое соединение между исходной и целевой системами, то отправка только ссылки через сообщение для запуска передачи будет работать, но, как вы заметили, вы теряете слабую связь.

Согласно книге "Шаблоны корпоративной интеграции", вы могли бы реализовать Шаблон последовательности сообщений.

По моему опыту работы с системами EAI, такими как TIBCO.В значительной степени от вас зависит, как нам разобраться с произвольно большими объемами данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top