Мы смотрим на интеграцию нашей платформы с Salesforce через Salesforce Outbound Messaging (SOM). Каждый раз, когда клиент обновляет объект (ы) в Salesforce, SOM вызывает нашу конечную точку Webservice с обновленными объектами (до 100 объектов за один вызов). Наш веб-сервис должен обновить соответствующие записи в нашей базе данных.
SOM работает очень хорошо для наших целей, за исключением 1 выпуска.
Некоторые клиенты проводят массовые ночные обновления. Нет ничего необычного в том, что 200 000-500 000 объектов обновляются. Это означает, что мы получим 2000-5000 звонков с 100 объектами за очень короткий период времени. Наш веб-сервис будет перегружен таким большим количеством данных, особенно если несколько клиентов проводят массовые обновления близко друг к другу.
Чтобы справиться с этим большим объемом / всплеском, веб-сервер создаст сообщение на сервере приложений для каждого объекта в вызове SOM. Другой процесс будет принимать сообщения из очереди сообщений и обновлять базу данных.
MSMQ ограничен только аппаратным обеспечением , поэтому должен иметь возможность обрабатывать миллионы сообщений, пока мы очищаем отставание.
Главный вопрос - это хороший дизайн для обработки большого количества вызовов данных / веб-сервисов? Есть ли лучший метод?