Является ли разделение веб-уровня и уровня базы данных с помощью MSMQ необходимым или излишним?

Я собираю простой веб-элемент управления asp.net, который в результате отправки формы ajax вставляет запись в базу данных MSQL.

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

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

Звучит ли это как разумная архитектура, учитывая, что веб-серверы и серверы баз данных работают на одном компьютере? Звучит ли это необходимо?

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

Будем очень признательны за любой совет.

Большое спасибо.

Пит

8
задан Pete Field 15 April 2012 в 08:06
поделиться