Как использовать очередь сообщений в реальном сценарии?

Итак, меня интересует организация очередей сообщений. Я действительно уже провел множество исследований на эту тему. Я читал «программирование Windows Azure» (о очередях Azure), я прочитал множество руководств и информации о служебной шине Azure, я смотрел видео канала 9 о шаблонах обмена сообщениями и т. д.

Но чего я только не понимаю: как можно ли использовать это в реальном сценарии? Все примеры просто помещают одну строку или объект с некоторыми данными в очередь и читают их из очереди на «другой стороне». Но откуда вы знаете, что делать с этими данными? Например: я мог бы попытаться сохранить клиента, заказ и адрес в базе данных, поэтому я поставил эти 3 объекта в очередь, чтобы прочитать их с другой стороны, и поместил их в свою базу данных. Откуда мне знать, что делать с такими объектами?

У меня есть несколько вопросов:

  1. Какие данные можно поставить в очередь. Может быть, команда, которая выполняется при чтении, поэтому все в очереди имеет один и тот же интерфейс, и объект сам определяет, что делать?
  2. Между какими слоями можно использовать очереди? Я думал о том, чтобы поместить материал в очередь на уровне обслуживания (после его проверки) и прочитать его на уровне доступа к данным, чтобы я мог поместить его в базу данных.
  3. Сколько нужно стоять в очереди? Только одна очередь между слоями, которые вы хотите соединить, или несколько очередей между ними (возможно, для разных целей, хотя я не могу придумать ни одной)?
  4. Эта форма слабой связи позволяет нам ставить запросы в очередь, чтобы их можно было обработать позже (например, когда мы хотим перезапустить базу данных). Это круто, но что, если я хочу ПРОЧИТАТЬ данные, а не записывать их? Тогда база данных должна быть онлайн. И должен ли я читать данные через очередь или мой сервисный уровень может просто извлекать данные из уровня доступа к данным и передавать их на уровень представления?

Я думаю, что это были большинство вопросов, которые крутились у меня в голове. Я надеюсь, что кто-нибудь может прояснить это для меня.

8
задан David Makogon 4 April 2012 в 23:40
поделиться