Каковы плюсы и минусы использования базы данных для IPC для обмена данными вместо передачи сообщений?

Чтобы быть более конкретным для моего приложения: общие данные - это в основном постоянные данные, такие как состояние мониторинга, конфигурации - не более нескольких сотен элементов, и они часто обновляются и читаются, но не более 1 или 2 Гц. Процессы являются локальными по отношению друг к другу на одной и той же машине.

РЕДАКТИРОВАТЬ 1: дополнительная информация - ожидается, что процессы будут опрашивать набор данных, которые им интересны (например, мониторинг). Большинство данных являются постоянными в течение срока службы программа, но некоторые (например, конфиги) необходимо восстановить после перезапуска программного обеспечения. Данные обновляются только владельцем (предположим, что один владелец для каждой информации). Количество процессов тоже невелико (не более 10)

Хотя использование базы данных значительно более надежно и масштабируемо, Мне всегда кажется, что это излишество или слишком сложно использовать, когда все, что я делаю с ним, - это делюсь данными в приложении. В то время как передача сообщения, например. В JMS также есть промежуточное ПО, но оно более легкое и имеет более естественный или гибкий коммуникационный API. Я думаю, реализовать уведомление о событиях и шаблон команд также проще с обменом сообщениями.

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

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

И, согласно здесь, http: //en.wikipedia. org / wiki / Database-as-IPC и здесь http: // tripatlas. ru / Database_as_an_IPC . Он говорит, что это будет анти-шаблон при использовании вместо передачи сообщений, но не уточняет, например. насколько сильно может снизиться производительность при использовании базы данных по сравнению с передачей сообщений.

Я просмотрел несколько предыдущих сообщений, в которых задавался аналогичный вопрос, но я надеюсь найти ответ, который сосредоточился бы на обосновании дизайна. Но из тех вопросов, которые я прочитал до сих пор, я вижу, что многие люди действительно использовали базу данных для IPC (или реализовали очередь сообщений с базой данных)

Спасибо!

5
задан kennyc 4 February 2011 в 10:37
поделиться