Как избежать проблем параллелизма при использовании базы данных в качестве коммуникационной шины? - PullRequest
0 голосов
/ 09 декабря 2011

Некоторые люди говорят мне, что мы должны избегать чтения / записи нескольких приложений в одну и ту же базу данных из-за проблем параллелизма. Они настаивали на том, чтобы убедить меня, что надежная архитектура позволяет только одному приложению получать доступ к базе данных. Я не знаю, возникают ли такие проблемы из-за параллелизма операций READ или они связаны только с операциями WRITE.

Меня беспокоит то, что БД является отличной коммуникационной шиной для некоторых систем, например, той, которую я разрабатываю. Есть ли какие-либо рекомендации о том, как это сделать, избегая при этом проблем с параллелизмом?

1 Ответ

4 голосов
/ 09 декабря 2011

(1) Не используйте базу данных в качестве коммуникационной шины, если в этом нет необходимости.Учитывая наличие доступных систем очередей сообщений с открытым исходным кодом, я сомневаюсь, что вам это необходимо.

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

(3) Если вы не поняли (1) или (2), вы не готовы использовать базу данных в качестве коммуникационной шины.Читайте о базах данных, параллелизме и транзакциях.

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